CSS - 如何在菜单栏中创建搜索框全高?

时间:2016-06-03 15:29:17

标签: html css menu height searchbar

我试图让这个类别搜索框填满菜单栏的高度,但我无法使其工作并且高度相同。

我怎样才能做到这一点?我错过了什么?提前谢谢。

以下是代码:

.fa {
  line-height: 1em;
}
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  background-color: black;
}
/*hack stack-overflow*/

ul::after {
  display: block;
  clear: both;
  content: "";
}
li {
  display: inline-block;
}
li.left {
  float: left;
  border-right: 1px solid white;
}
li.right {
  float: right;
  border-left: 1px solid white;
}
li a {
  display: inline-block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
li span {
  display: inline-block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
li a:hover {
  background-color: gray;
}
li span:hover {
  background-color: gray;
}
li#login {
  position: relative;
}
li#login form {
  display: none;
  position: absolute;
  z-index: 999;
  background-color: gray;
  padding: 20px;
  border-radius: 20px 0px 20px 20px;
  right: 0;
  box-shadow: 5px 5px 5px black;
}
li#login:hover form {
  display: block;
}
input.login_field {
  margin: 10px;
}
#submit-div {
  text-align: center;
}
#form-wrapper {
  width: 100%;
  height: 40px;
}
.nav-list {
  padding: 10px 25px 10px 5px;
  position: relative;
  float: left;
  border: 1px solid orange;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}
#dropdown {
  cursor: pointer;
  position: absolute;
  height: 40px;
  left: 0;
  top: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
  border: 1px solid orange;
}
#dropdown:hover {
  background-color: lightgray;
}
.current-selection {
  display: inline-block;
  font-size: 14px;
}
.in-wrap {
  overflow: hidden;
  height: 100%;
}
#search-box {
  width: 100%;
  min-width: 400px;
  height: 36px;
  border: 1px solid orange;
  border-left: none;
  border-right: none;
  line-height: 25px;
  font-size: 18px;
  padding-left: 100px;
}
#search-box:focus {
  outline: none;
}
.go-button {
  float: right;
  height: 100%;
  background-color: orange;
  border: 1px solid orange;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  margin: 0;
  padding: 0 15px;
}
.go-button:hover {
  background-color: #ff7300;
  cursor: pointer;
}
<link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" />
<nav class="menu">
  <ul>
    <li class="left"><a class="fa fa-home" href="index.jsp">&nbsp;Home</a>
    </li>
    <li class="left"><a class="fa fa-shopping-cart" href="#home">&nbsp;Carrello</a>
    </li>

    <li class="left"><span id="totale" class="fa fa-money">&nbsp;&euro;0</span>
    </li>


    <li id="search" class="left">
      <div id="form-wrapper">
        <button class="go-button fa fa-search"></button>
        <span class="nav-list">
  <span class="current-selection">
  </span>
        <select id="dropdown">
          <option value="books-and-ebooks">Books & eBooks</option>
          <option value="audiobooks">Audiobooks</option>
          <option value="dvds">DVDs</option>
          <option value="other-resources">Other Resources</option>
          <option value="random">Random</option>
        </select>
        </span>
        <div class="in-wrap">
          <input type="text" name="query" id="search-box">
        </div>
      </div>
    </li>
    <li class="right"><a class="fa fa-user-plus" href="">&nbsp;Signup</a>
    </li>
    <li id="login" class="right">
      <a class="fa fa-sign-in" href="">&nbsp;Login</a>
      <form id="login_form" action="login" method="post">
        <input id="login_username" class="login_field" name="username" type="text" placeholder="username" />
        <br />
        <input id="login_password" class="login_field" name="password" type="password" placeholder="password" />
        <br />
        <div id="submit-div">
          <input type="submit" value="login" />
        </div>
      </form>
    </li>
  </ul>
</nav>

1 个答案:

答案 0 :(得分:0)

嗯......看起来你的CSS实现你想要的渲染有点乱。如果我是你,我会先尝试简化它...
此外,在提供的示例中,我们无法知道目标渲染:您想要降低菜单栏的高度,还是增加搜索框的高度?

在CSS示例(取自您的)下方,其中搜索框高度增加以适合菜单栏的高度。一个看起来不太好看的CSS,因为很多大小都是硬编码的....

.fa {
  line-height: 1em;
}
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  background-color: black;
}
/*hack stack-overflow*/

ul::after {
  display: block;
  clear: both;
  content: "";
}
li {
  display: inline-block;
}
li.left {
  float: left;
  border-right: 1px solid white;
}
li.right {
  float: right;
  border-left: 1px solid white;
}
li a {
  display: inline-block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
li span {
  display: inline-block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
li a:hover {
  background-color: gray;
}
li span:hover {
  background-color: gray;
}
li#login {
  position: relative;
}
li#login form {
  display: none;
  position: absolute;
  z-index: 999;
  background-color: gray;
  padding: 20px;
  border-radius: 20px 0px 20px 20px;
  right: 0;
  box-shadow: 5px 5px 5px black;
}
li#login:hover form {
  display: block;
}
input.login_field {
  margin: 10px;
}
#submit-div {
  text-align: center;
}
#form-wrapper {
  width: 100%;
  height: 44px;
}
.nav-list {
  padding: 5px 25px 5px 5px;
  position: relative;
  float: left;
  border: 1px solid orange;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}
#dropdown {
  cursor: pointer;
  position: absolute;
  height: 43px;
  left: 0;
  top: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
  border: 1px solid orange;
}
#dropdown:hover {
  background-color: lightgray;
}
.current-selection {
  display: inline-block;
  font-size: 14px;
}
.in-wrap {
  overflow: hidden;
  height: 100%;
}
#search-box {
  width: 100%;
  min-width: 400px;
  height: 40px;
  border: 1px solid orange;
  border-left: none;
  border-right: none;
  line-height: 25px;
  font-size: 18px;
  padding-left: 100px;
}
#search-box:focus {
  outline: none;
}
.go-button {
  float: right;
  height: 100%;
  background-color: orange;
  border: 1px solid orange;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  margin: 0;
  padding: 0 15px;
}
.go-button:hover {
  background-color: #ff7300;
  cursor: pointer;
}