Совместите значок с полем ввода с CSS - PullRequest
0 голосов
/ 02 июня 2018

Как видите, значок не совсем выровнен с полем ввода:

this image

Я просто хочу, чтобы значок совпал с полем ввода и не могу использоватьposition absolute потому что тогда поле ввода переполняет другое содержимое.

Что я могу сделать, чтобы сделать это правильно?

header.toplogo {
  overflow: hidden;
  margin-top: 10px;
  position: relative;
  display: grid;
  grid-template-columns: 170px 1fr 100px
}

header.toplogo div {
  width: 100%;
  margin: 0 auto;
  line-height: 150px;
  vertical-align: middle;
  grid-column: 2/3;
}

header.toplogo div i {
  background-color: #ff3232;
  padding: 10px 12px 14px 12px;
  border-radius: 5px 0 0 5px;
  color: white;
  font-size: 18px;
  transition: 0.6s;
}
<header class="toplogo" style="direction:ltr">
  <div><i class="fa fa-search"></i><input type="text" name="search" placeholder="Search ..."></div>
</header>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">

1 Ответ

0 голосов
/ 02 июня 2018

Вот мое решение

Добавьте это к вашему css

input {
  box-sizing: border-box;
  height: 42px;

}

И добавьте vertical align:middle к i метке

header.toplogo {
  overflow: hidden;
  margin-top: 10px;
  position: relative;
  display: grid;
  grid-template-columns: 170px 1fr 100px
}

header.toplogo div {
  width: 100%;
  margin: 0 auto;
  line-height: 150px;
  vertical-align: middle;
  grid-column: 2/3;
}

header.toplogo div i {
  background-color: #ff3232;
  padding: 10px 12px 14px 12px;
  border-radius: 5px 0 0 5px;
  color: white;
  font-size: 18px;
  transition: 0.6s;
  vertical-align: middle;
}

input {
  box-sizing: border-box;
  height: 42px;
 
}
<link href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" rel="stylesheet" />
<header class="toplogo" style="direction:ltr">
  <div><i class="fas fa-search"></i><input type="text" name="search" placeholder="Search ..."></div>
</header>
...