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

「ulli」要素の代わりに「ullia」のスタイルを設定しようとしているのではないかと思います。上記の誰かが各li要素に20%を与えるように、すべてを「box-sizing:border-box」でスタイル設定すると、準備が整います;)ここで解決策を見ることができます:http://codepen.io/czaras/pen / Auqtn

于 2013-01-14T00:52:21.887 に答える
1

widthは、コンテンツの幅を指定します。パディングとボーダーのサイズは、指定された幅に追加されます。境界線を含めて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)に準拠しているため、必要なスペースを占めていません。(任意の数のボタンに対して)探している効果を得る最も簡単な方法はtable、100%の幅のを使用することです。より複雑な方法は、ボタンの数で合計が100%になるように、各ボタンに同じパーセンテージの幅を与えることです。ボタンは5つあるので、装着できwidth:20%;ます#nav ul li。また、このスタイルにある大きな97pxの左右のパディングを削除し、はるかに小さい値を選択することもできます。

下部のスクロールバーを処理するには、で指定box-sizing: border-box;#navます。

于 2013-01-14T00:09:27.853 に答える