2016-09-30 1 views
1

私はNAVここに持っている:は、ナビゲーション用HTML、CSSで立ち往生し、それは完全な幅を取得する方法を

http://tumolo.co.uk/navbar/

は、私はすべての種類を試してみた - しかし私は、ブラウザを埋めるために、このNAVを得るカント100%幅。ナビゲーションバーの左右に空白があります。

私は100%/ 6のメニュー要素として16%に各ナビゲーションを配置し、16%は各要素の等しいサイズを得るのに最も近いです。

body { 
 
    margin: 0; 
 
    padding: 0; 
 
    background: #ccc; 
 
} 
 
.nav ul { 
 
    list-style: none; 
 
    background-color: #fff; 
 
    text-align: center; 
 
    padding: 0; 
 
    margin: 0; 
 
    padding-left: 0px; 
 
    padding-right: 0px; 
 
} 
 
.nav li { 
 
    font-size: 1em; 
 
    line-height: 40px; 
 
    height: 40px; 
 
    border-bottom: 1px solid #888; 
 
} 
 
.nav a { 
 
    text-decoration: none; 
 
    color: #6b6b6b; 
 
    display: block; 
 
    font-size: 0.8em !important; 
 
    transition: .3s background-color; 
 
} 
 
.nav a:hover { 
 
    background-color: #ff0; 
 
    color: #000; 
 
} 
 
.nav a.active { 
 
    background-color: #fff; 
 
    color: #444; 
 
    cursor: default; 
 
} 
 
.nav ul li#wind a:hover { 
 
    color: #ffffff; 
 
    background-color: #5da3ab; 
 
} 
 
.nav ul li#wind .active { 
 
    background-color: #5da3ab; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#hmrc a:hover { 
 
    color: #ffffff; 
 
    background-color: #ac5e88; 
 
} 
 
.nav ul li#hmrc .active { 
 
    background-color: #ac5e88; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#cvl a:hover { 
 
    color: #ffffff; 
 
    background-color: #5e7ea4; 
 
} 
 
.nav ul li#mvl a:hover { 
 
    color: #ffffff; 
 
    background-color: #5b3e52; 
 
} 
 
.nav ul li#admin a:hover { 
 
    color: #ffffff; 
 
    background-color: #7c6e61; 
 
} 
 
.nav ul li#liquid a:hover { 
 
    color: #ffffff; 
 
    background-color: #7c4c4c; 
 
} 
 
@media screen and (min-width: 600px) { 
 
    .nav li { 
 
    width: 16%; 
 
    border-bottom: none; 
 
    height: 50px; 
 
    line-height: 50px; 
 
    font-size: 1em; 
 
    border-right: 1px solid #ebe3e3; 
 
    } 
 
    /* Option 1 - Display Inline */ 
 
    .nav li { 
 
    display: inline-block; 
 
    margin-right: -4px; 
 
    } 
 
    .nav li:last-child { 
 
    border-right: 0; 
 
    } 
 
    /* Options 2 - Float 
 
    .nav li { 
 
    float: left; 
 
    } 
 
    .nav ul { 
 
    overflow: auto; 
 
    width: 600px; 
 
    margin: 0 auto; 
 
    } 
 
    .nav { 
 
    background-color: #444; 
 
    } 
 
    */ 
 
}
<link rel="stylesheet" type="text/css" href="custom.css"> 
 
<div class="nav"> 
 
    <ul id="navlist"> 
 
    <li id="wind"><a href="#">Winding up petition</a> 
 
    </li> 
 
    <li id="hmrc"><a href="#">Cant pay HMRC?</a> 
 
    </li> 
 
    <li id="cvl"><a href="#">CVA</a> 
 
    </li> 
 
    <li id="mvl"><a href="#">MVL</a> 
 
    </li> 
 
    <li id="admin"><a href="#">Administration</a> 
 
    </li> 
 
    <li id="liquid"><a href="#">Liquidation</a> 
 
    </li> 
 
    </ul> 
 
</div>

+5

意味のあるコードとここで問題の記述を追加してください。修復が必要なサイト にリンクしないでください。そうしないと、 問題が解決されたり、リンク先のサイトにアクセスできない場合、この質問は将来の訪問者に価値を失います。 [最小、完全、および検証可能な例(MCVE)]を投稿すると()、より良い回答を得るのに役立ちます(http://stackoverflow.com/help/mcve)。詳細については、 [私のWebサイトの何かが動作しません。リンクを貼り付けることはできますか?](http://meta.stackexchange.com/questions/125997/) ありがとう! – j08691

答えて

1

Flexboxそこにあなたを取得します!あなたは、エッジに対して面一に端を希望している場合は

.nav ul { 
    width: 100%; 
    display: flex; 
    justify-content: space-around; 
} 

、それを使用する方がよい場合があります。

要素上の既存のスタイルを見て
justify-content: space-between; 

、あなたはpadding-leftを削除することができますし、 padding-right、コメントに記載されています。また、flexを使用すると、ベンダーのプレフィックスをチェックアウトすることができます。

注:古いIEのサポートは不安定になる可能性があります。

コメントにも記載されているように、上記にはヘッダーにギャップが残っています。ジョーによって提案された代替は、次のとおりです。

私はあなたの説明から理解何
#navList { 
    display:flex; 
} 
#navList li { 
    flex:1 auto; 
} 
+0

'justify-content:スペースアラウンド;' ... ew。なぜ 'flex:1 auto;'を '.nav li'に追加しないのですか?また、 '#navlist'は' padding:0; 'を必要とします。 –

+0

@JosephMarikle idによるスタイル付けは、しばしば[bad form](http://oli.jp/2011/ids/)とみなされます。スタイルは動作しているので、検証するためにスタイルシートに貼り付けましたが、 'padding-right'を削除すると不要なスタイルが取り除かれます。 'flex:1 auto'がうまくいくかもしれませんが、このアプローチはちょうど頭に来た最初のものでした:) –

+0

http://tumolo.co.uk/navbar/ –

0

は、あなたが100%の幅と同じ幅を持つことになり、メニューのノードを持つヘッダナビゲーションをしようとしています。

calc()を使用して例を挙げておきましょう。あなたのコードにその例を適用できます。

<div class="nav"> 
    <ul> 
     <li>Element</li> 
     <li>Element</li> 
     <li>Element</li> 
     <li>Element</li> 
    </ul> 
</div> 

また、CSSでは、

.nav { height:30px; width:100%; 
    border-bottom:1px solid #000;} 
.nav li { 
    width:calc(100%/4); 
    list-style: none; 
    text-align:center; 
    float:left; 
} 

は、我々は4つのli要素たちのナビゲーションでを持っているので、私たちは4に100%を割りました。 jsfiddle上

チェック:それは役立つだろう期待してhttps://jsfiddle.net/d9b1re2p/1/

それがより良い説明次回にあなたの質問に簡略化されているように、あなたのコードを投稿してください。

1

絶対に必要でない場合は、.nav lidisplay: inline-block;を登録してください。それぞれの値が-4pxで近似されているので、幅の計算がわかりません。

.nav liを左に浮動させる場合は、box-sizing: border-box;を追加し、幅を16.6667%に増やすと、合計カバレッジが得られます。 .nav ulを適切に調整する必要がありますが、以下のスニペットを表示するように更新しました。

body { 
 
    background: #ccc none repeat scroll 0 0; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.nav ul { 
 
    background-color: #fff; 
 
    list-style: outside none none; 
 
    margin: 0; 
 
    padding: 0; 
 
    text-align: center; 
 
    float: left; 
 
    width: 100%; 
 
} 
 
.nav li { 
 
    border-bottom: 1px solid #888; 
 
    font-size: 1em; 
 
    height: 40px; 
 
    line-height: 40px; 
 
} 
 
.nav a { 
 
    color: #6b6b6b; 
 
    display: block; 
 
    font-size: 0.8em !important; 
 
    text-decoration: none; 
 
    transition: background-color 0.3s ease 0s; 
 
} 
 
.nav a:hover { 
 
    background-color: #ff0; 
 
    color: #000; 
 
} 
 
.nav a.active { 
 
    background-color: #fff; 
 
    color: #444; 
 
    cursor: default; 
 
} 
 
.nav ul li#wind a:hover { 
 
    background-color: #5da3ab; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#wind .active { 
 
    background-color: #5da3ab; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#hmrc a:hover { 
 
    background-color: #ac5e88; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#hmrc .active { 
 
    background-color: #ac5e88; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#cvl a:hover { 
 
    background-color: #5e7ea4; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#mvl a:hover { 
 
    background-color: #5b3e52; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#admin a:hover { 
 
    background-color: #7c6e61; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#liquid a:hover { 
 
    background-color: #7c4c4c; 
 
    color: #ffffff; 
 
} 
 
@media screen and (min-width: 600px) { 
 
.nav li { 
 
    border-bottom: medium none; 
 
    border-right: 1px solid #ebe3e3; 
 
    font-size: 1em; 
 
    height: 50px; 
 
    line-height: 50px; 
 
    width: 16.6667%; 
 
    box-sizing: border-box; 
 
    float: left; 
 
} 
 
.nav li:last-child { 
 
    border-right: 0 none; 
 
} 
 
}
<div class="nav"> 
 
\t <ul id="navlist"> 
 
\t \t <li id="wind"><a href="http://propertycrowdinvestor.com/insolvency/winding-up-petition/">Winding up petition</a></li> 
 
\t \t <li id="hmrc"><a href="http://propertycrowdinvestor.com/insolvency/cant-pay-hmrc/">Cant pay HMRC?</a></li> 
 
\t \t <li id="cvl"><a href="http://propertycrowdinvestor.com/insolvency/cvl/">CVA</a></li> <li id="mvl"><a href="http://propertycrowdinvestor.com/insolvency/mvl/">MVL</a></li> 
 
\t \t <li id="admin"><a href="http://propertycrowdinvestor.com/insolvency/administration/">Administration</a></li> 
 
\t \t <li id="liquid"><a href="http://propertycrowdinvestor.com/insolvency/liquidation/">Liquidation</a></li> 
 
\t </ul> 
 
</div>

+0

私はこれをもう一度試してみましたが、私はあなたが置くことができるとは思わない16.6 –

+0

することができます。上記のコードで私の答えを編集しました。 –

+0

ダニエルあなたが正しいと申し訳ありません - http://tumolo.co.uk/navbar/ –

0

使用CSSテーブル。フレックスボックスとよく似た動作をしますが、より優れたサポートを提供します。

これは16%のメディアクエリを必要とせずに、各liを均等に上下に配置します。

あなたは、あなたの国境に追加するために少しリンクのスタイリングを調整する必要があります。

body { 
 
    margin: 0; 
 
    padding: 0; 
 
    background: #ccc; 
 
} 
 
.nav ul { 
 
    list-style: none; 
 
    background-color: #fff; 
 
    text-align: center; 
 
    padding: 0; 
 
    margin: 0; 
 
    padding-left: 0px; 
 
    padding-right: 0px; 
 
    display:table; 
 
    width:100%; 
 
    table-layout:fixed; 
 
} 
 
.nav li { 
 
    font-size: 1em; 
 
    line-height: 40px; 
 
    height: 40px; 
 
    border-bottom: 1px solid #888; 
 
    display:table-cell; 
 
    vertical-align:top; 
 
    position:relative; 
 
} 
 
.nav a { 
 
    text-decoration: none; 
 
    color: #6b6b6b; 
 
    display: block; 
 
    font-size: 0.8em !important; 
 
    transition: .3s background-color; 
 
} 
 
.nav a:hover { 
 
    background-color: #ff0; 
 
    color: #000; 
 
} 
 
.nav a.active { 
 
    background-color: #fff; 
 
    color: #444; 
 
    cursor: default; 
 
} 
 
.nav ul li#wind a:hover { 
 
    color: #ffffff; 
 
    background-color: #5da3ab; 
 
} 
 
.nav ul li#wind .active { 
 
    background-color: #5da3ab; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#hmrc a:hover { 
 
    color: #ffffff; 
 
    background-color: #ac5e88; 
 
} 
 
.nav ul li#hmrc .active { 
 
    background-color: #ac5e88; 
 
    color: #ffffff; 
 
} 
 
.nav ul li#cvl a:hover { 
 
    color: #ffffff; 
 
    background-color: #5e7ea4; 
 
} 
 
.nav ul li#mvl a:hover { 
 
    color: #ffffff; 
 
    background-color: #5b3e52; 
 
} 
 
.nav ul li#admin a:hover { 
 
    color: #ffffff; 
 
    background-color: #7c6e61; 
 
} 
 
.nav ul li#liquid a:hover { 
 
    color: #ffffff; 
 
    background-color: #7c4c4c; 
 
}
<link rel="stylesheet" type="text/css" href="custom.css"> 
 
<div class="nav"> 
 
    <ul id="navlist"> 
 
    <li id="wind"><a href="#">Winding up petition</a> 
 
    </li> 
 
    <li id="hmrc"><a href="#">Cant pay HMRC?</a> 
 
    </li> 
 
    <li id="cvl"><a href="#">CVA</a> 
 
    </li> 
 
    <li id="mvl"><a href="#">MVL</a> 
 
    </li> 
 
    <li id="admin"><a href="#">Administration</a> 
 
    </li> 
 
    <li id="liquid"><a href="#">Liquidation</a> 
 
    </li> 
 
    </ul> 
 
</div>

関連する問題