6

我想让我的导航栏延伸到浏览器的边缘。我可以通过按像素指定宽度来做到这一点,但是当我让 width="100%" 它不起作用+它在底部显示滚动条.....所以我怎样才能让它伸展到窗口大小水平浏览器?

这是 演示

<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> 
4

4 回答 4

3

我质疑你尝试设置 'ul li a' 而不是 'ul li' 元素的样式。正如上面提到的那样,给每个 li 元素 20%,用 'box-sizing:border-box' 设置所有样式,你就可以开始了;)在这里你可以看到解决方案:http ://codepen.io/czaras/pen /Auqtn

于 2013-01-14T00:52:21.887 回答
1

宽度指定内容的宽度。填充和边框大小被添加到指定的宽度。如果您希望它包括边框为 100%,则必须删除您的边框。

请参阅此图:

 _______________________
|  margin               |
|  ___________________  |
| |  border           | |
| |  _______________  | |
| | |  padding      | | |
| | |  ___________  | | |
| | | |  content  | | | |
| | | |___________| | | |
| | | |           | | | |
| | | |<- width ->| | | |
| | |_______________| | |
| |___________________| |
|_______________________|
于 2013-01-14T00:08:29.450 回答
1

只需将主体边距设为 0%

body{ margin: 0%; }

于 2021-08-28T06:20:14.100 回答
0

#nav是 100% 宽度,但各个按钮不会占用您想要的空间,因为它们符合其文本的宽度 ( width:auto)。获得您正在寻找的效果(对于任意数量的按钮)的最简单方法是使用table100% 宽度的 a。更复杂的方法是给每个按钮一个相等的百分比宽度,这样按钮的数量加起来就是 100%。你有5个按钮,所以你可以穿上width:20%;#nav ul li您还需要消除此样式上的 97px 左右填充并选择更小的值。

要处理底部的滚动条,请指定box-sizing: border-box;on #nav

于 2013-01-14T00:09:27.853 回答