2011-12-15 7 views
4

私のCSSは次のとおりです。Liがスタイル "float:left;"を持っている場合、ULの境界を作る方法? ULのため

ul {list-style-type: none; margin:auto; border-top: 1px solid #0093a7; border-bottom: 1px solid #0093a7; margin: 20px 0;} 
ul li {float:left; padding:5px;} 

ULタグ:

<ul> 
     <li><a href="#">Link</a></li> 
     <li><a href="#">Link</a></li> 
     <li><a href="#">Link</a></li> 
</ul> 

は今、両方の境界線はULの上にあります。 ボトムボーダーを作成するには?

答えて

13

フロートがクリアされ、ulに含まれるようにoverflow:hiddenulに適用する必要があります。

現在、ulにはフローティング要素のみが含まれているため、折りたたまれています。

IE6(?!)をサポートする必要がある場合は、オーバーフロートリックが動作するようにコンテナ(つまりul)にhasLayoutが設定されていることを確認する必要があります。これを行うには、幅を適用します。

+0

基本::)しかし、偉大な答え – ggzone

+0

あなたの答えをありがとう。この質問に少しは考慮しませんが、liの合計のようなボーダーULの長さを作る方法はありますか? – Anthony

+3

@anthonyあなたも 'ul'を浮かべることができます。浮動小数点型の要素には常に浮動小数点型の要素が含まれるため、 'overflow:hidden'は必要ありません。または、 'ul'に' display:inline-block'を表示することもできます。これは 'overflow:hidden'の必要性を否定します(クロスブラウザサポートについてはチェックしていますが)。 – MrWhite

関連する問題