【发布时间】:2019-11-14 04:51:17
【问题描述】:
我正在尝试制作一个导航栏,其中搜索表单将始终填充导航栏左右部分/div之间的空间,亚马逊就是这种搜索表单的一个示例。
过去两个小时我尝试了多种方法,但搜索栏似乎不想更改宽度,除非我手动设置。
完整代码: http://jsfiddle.net/asoctyk9/
HTML:
<nav>
<ul>
<div class="navbar-main-wrapper">
<div class="navbar-left-wrapper">
<li><a href="/" >Home</a></li>
<li><a href="profile" >My Account</a></li>
<li><a href="contact" >Contact</a></li>
</div>
<div class="navbar-right-wrapper">
<li><a href="login" id="nav-sign-in">Sign In</a></li>
<li><a href="register" id="nav-register">Register</a></li>
<li><a href="logout" id="nav-logout" onclick="logoutConfirm()">Logout</a></li>
<script>
//...
</script>
<li><a href="about">About</a></li>
</div>
<!-- MIDDLE FILL -->
<div class="navbar-search-wrapper">
<li>
<form action="/search" id="searchform" method="GET">
<input type="search" name="search" placeholder="What are you looking for..." />
<button type="submit" form="searchform"><i class="fa fa-search"></i></button>
</form>
</li>
</div>
</div>
</ul>
</nav>
CSS:
nav {
margin-bottom: 30px;
}
nav ul{
list-style-type: none;
margin: 0px;
padding: 0px;
/*overflow: hidden;*/
background-color: #232f3e;
height: 47px;
padding-bottom: 5px;
}
nav li {
display: inline-block;
padding-right: 2px;
padding-left: 2px;
}
nav .navbar-left-wrapper {
padding-left: 10%;
float: left;
}
nav .navbar-right-wrapper {
float: right;
padding-right: 10%;
}
nav .navbar-main-wrapper {
margin: 0 auto;
max-width: 1460px;
min-width: 1100px;
}
nav li a {
display: block;
color: white;
/*text-align: center;*/
padding: 14px 16px;
text-decoration: none;
font-family: Arial, Helvetica, sans-serif;
border-radius: 10%;
}
nav li a:hover:not(.active) {
background-color: #485769;
}
nav li a#nav-logout:hover:not(.active) {
background-color: rgb(221, 34, 34);
}
nav a.active {
background-color: #586a80;
}
nav input[type=search] {
height: 40px;
font-size: 16px;
background-color: none;
padding: 10px 20px 10px 20px;
display: inline-block;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
box-sizing: border-box;
background-color: #ffffff;
box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.1);
border:none;
resize:none;
margin: 4px 0px 4px 0px;
font: inherit;
font-size: 14px;
font-weight: normal;
padding: 10px;
}
nav input[type=search]:focus {
outline: none;
}
nav .navbar-search-wrapper {
display: inline-block;
/*border: 2px solid red;*/
}
nav .navbar-search-wrapper button {
float: right;
padding: 10px 10px;
margin-top: 4px;
background: #ffa807;
font-size: 17px;
border: none;
cursor: pointer;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
nav .navbar-search-wrapper button:hover {
background: #ff8808;
}
当我缩小页面时,搜索栏会向左移动。我希望它“坚持”到navbar-right-wrapper 的第一个元素和navbar-left-wrapper 的最后一个元素,并在用户缩小页面时展开,基本上总是填充链接之间的空间。
我刚开始使用 HTML 和 CSS,因此非常感谢您提供任何帮助!
编辑:添加 CSS 代码
【问题讨论】:
-
欢迎来到 SO。请您也分享 CSS,以便我们提供帮助。
标签: html css css-float navigationbar search-form