Robert Johnson
Robert Johnson

Reputation: 35

Image div breaks text input HTML/CSS

I have a simple webpage I'm working on, and I wanted to add a search bar to the page. However, when I added the search bar, it wouldn't let me click/type in the bar. I eventually found out that I was able to click/type into it after removing this div:

<div class="imagediv">
    <img src="src/smallpaw.png">
    </div>

This is used to put a logo on the header of my page, and I haven't been able to figure out why this breaks the search input. Obviously I want to keep this logo on my header, but any help would be appreciated.

Here is my index.html:

<!DOCTYPE html>
<html>
  <head>
    <style>
      body {
        #background: url("src/header.png") no-repeat;
      }
    </style>
    <link
      href="https://fonts.googleapis.com/css?family=Roboto:300"
      rel="stylesheet"
    />
    <link rel="stylesheet" type="text/css" href="src/styles.css" />

    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style>
      input[type="text"] {
        width: 130px;
        box-sizing: border-box;
        border: 2px solid #ccc;
        border-radius: 4px;
        font-size: 16px;
        background-color: white;
        background-image: url("searchicon.png");
        background-position: 10px 10px;
        background-repeat: no-repeat;
        padding: 12px 20px 12px 10px;
        -webkit-transition: width 0.4s ease-in-out;
        transition: width 0.4s ease-in-out;
      }

      input[type="text"]:focus {
        width: 100%;
      }
      input[type="text"]::placeholder {  

                  /* Firefox, Chrome, Opera */ 
                  text-align: left; 
              }
      input[type="text"]::-ms-input-placeholder {  

             /* Microsoft Edge */ 
             text-align: left; 
      }
    </style>
  </head>
  <body>
    <div class="header"></div>

    <div class="imagediv">
        <img src="src/smallpaw.png">
        </div>

    <h1>&nbsp&nbspStudent Information</h1>
    <br />

    <form>
      <input type="text" name="search" placeholder="Search" />
    </form>

  </body>
</html>

and here is my styles.css:

h1 {
  font-family: "Roboto", "Arial";
}
.header {
  overflow: hidden;
  background-color: #522e81;
  position: relative;
  z-index: 1;
  height: 77px;
}

.imagediv {
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 100;
  max-width: 10%;
  max-height: 10%;
}

input[type="text"] {
  width: 130px;
  -webkit-transition: width 0.4s ease-in-out;
  transition: width 0.4s ease-in-out;
}

/* When the input field gets focus, change its width to 100% */
input[type="text"]:focus {
  width: 30%;
}

Upvotes: 1

Views: 43

Answers (1)

Harish Dhami
Harish Dhami

Reputation: 1086

Your imageDiv should be placed inside header div. That's the reason it's overlapping with input box and you are not able to type. Hope it helps man!

Upvotes: 1

Related Questions