我想让我的导航栏延伸到浏览器的边缘。我可以通过逐像素指定宽度来做到这一点,但是当我使width =“100%”时它不起作用+它在底部显示滚动条.....所以我怎样才能使它延伸到窗口大小的浏览器水平?
以下是 Demo
<html>
<head>
<style type="text/css">
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
#nav {
float: left;
font: bold 12px Arial, Helvetica, Sans-serif;
border: 1px solid #121314;
border-top: 1px solid #2b2e30;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 0px;
overflow: hidden;
width:100%;
}
#nav ul {
margin:0;
padding:0;
list-style:none;
}
#nav ul li {
float:left;
}
#nav ul li a {
float: left;
color:#d4d4d4;
padding: 15px 97px;
text-decoration:none;
background:#3C4042;
background: -webkit-gradient( linear, left bottom, left top, color-stop(0.09, rgb(59,63,65)), color-stop(0.55, rgb(72,76,77)), color-stop(0.78, rgb(75,77,77)) );
background: -moz-linear-gradient( center bottom, rgb(59,63,65) 9%, rgb(72,76,77) 55%, rgb(75,77,77) 78% );
background: -o-linear-gradient( center bottom, rgb(59,63,65) 9%, rgb(72,76,77) 55%, rgb(75,77,77) 78% );
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1) inset, 0 0 5px rgba(0, 0, 0, 0.1) inset;
border-left: 1px solid rgba(255, 255, 255, 0.05);
border-right: 1px solid rgba(0,0,0,0.2);
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.6);
}
#nav ul li a:hover,
#nav ul li:hover > a {
color: red;
background:#3C4042;
background: -webkit-gradient( linear, left bottom, left top, color-stop(0.09, rgb(77,79,79)), color-stop(0.55, rgb(67,70,71)), color-stop(0.78, rgb(69,70,71)) );
background: -moz-linear-gradient( center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78% );
background: -o-linear-gradient( center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78% );
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2), 0 -1px #000;
}
#nav li ul a:hover,
#nav ul li li:hover > a {
color: #2c2c2c;
background: #5C9ACD;
background: -webkit-gradient( linear, left bottom, left top, color-stop(0.17, rgb(61,111,177)), color-stop(0.51, rgb(80,136,199)), color-stop(1, rgb(92,154,205)) );
background: -moz-linear-gradient( center bottom, rgb(61,111,177) 17%, rgb(80,136,199) 51%, rgb(92,154,205) 100% );
background: -o-linear-gradient( center bottom, rgb(61,111,177) 17%, rgb(80,136,199) 51%, rgb(92,154,205) 100% );
border-bottom: 1px solid rgba(0,0,0,0.6);
border-top: 1px solid #7BAED9;
text-shadow: 0 1px rgba(255, 255, 255, 0.3);
}
#nav li:hover ul {
left: auto;
}
#nav li li:hover ul {
visibility:visible;
}
</style>
</head>
<body>
<div id="nav" >
<ul >
<li width="300px" ><a href="#">Home</a></li>
<li><a href="#">Sell</a>
<li><a href="#">Services</a>
<li><a href="#">Contact Us</a></li>
<li><a href="#">Sign In/Register</a></li>
</ul>
</div>
答案 0 :(得分:2)
我想你试着用'ul li a'代替'ul li'元素。正如上面提到的那样,给每个li元素20%,使用'box-sizing:border-box'来设置所有内容,然后你准备好了;) 在这里,您可以看到解决方案:http://codepen.io/czaras/pen/Auqtn
答案 1 :(得分:1)
宽度指定内容的宽度。填充和边框大小将添加到指定的宽度。如果您希望包括边框为100%,则必须删除边框。
见下图:
_______________________
| margin |
| ___________________ |
| | border | |
| | _______________ | |
| | | padding | | |
| | | ___________ | | |
| | | | content | | | |
| | | |___________| | | |
| | | | | | | |
| | | |<- width ->| | | |
| | |_______________| | |
| |___________________| |
|_______________________|
答案 2 :(得分:0)
#nav
的宽度为100%,但各个按钮没有占用您想要的空间,因为它们符合文本宽度(width:auto
)。获得所需效果的最简单方法(对于任意数量的按钮)是使用宽度为100%的table
。更复杂的方法是为每个按钮提供相等的百分比宽度,使得按钮数量增加到100%。您有5个按钮,因此您可以将width:20%;
放在#nav ul li
上。您还希望消除此样式上的大型97px左右填充,并选择更小的值。
要处理底部的滚动条,请在box-sizing: border-box;
上指定#nav
。