2012-10-19 2 views
6

私はこの記事からの指示を使用して複数の列リストを作成しています:ulタグには何が行われますか:hidden do?

HTML::

http://csswizardry.com/2010/02/mutiple-column-lists-using-one-ul/

一言で言えば、それはこの線に沿って何かを言います

<div class='block'> 
    <ul> 
    <li> 
     Item1 
    </li> 
    <li> 
     Item2 
    </li> 
    <li> 
     Item3 
    </li> 
    </ul> 
</div> 

CSS:

.block { 
    border: 1px solid black; 
    padding: 10px; 
} 
.block ul { 
    width: 100%; 
    overflow: hidden; 
} 
.block ul li { 
    display: inline; 
    float: left; 
    width: 50%; 
} 

それはすばらしく働いていますが、私はオーバーフロー:隠されたCSS宣言で心配しました。それがなければ

は、私の外側のdivがそうのような崩壊:

http://jsfiddle.net/alininja/KQ9Nm/2/

それは含まれています

http://jsfiddle.net/alininja/KQ9Nm/1/

は、外側のdivは、私はそれになりたいだろうかと正確に動作します私はなぜオーバーフロー:隠されているこの動作を引き起こしているのだろうかと思います。外側のdivを必要な高さに拡大する代わりに内側のliアイテムをカットすることが期待されます。

ありがとうございます!

+0

非常に興味深い。実際に 'overflow:hidden'を' overflow:auto'に変更すると、それはまだ動作します。理由を説明することができれば幸いですが、その興味深い発見です。ありがとう。 –

+1

多分この記事は、いくつかの光を流すことができます:http://colinaarts.com/articles/the-magic-of-overflow-hidden/ –

+0

あなたがそれに高さを指定すると、内部のアイテムを切断します。これは 'float:left/right'の振る舞いであるので、' overflow:hidden 'の動作ではありません。 – Shmiddty

答えて

8

オーバーフローが隠し、スクロールまたは自動のいずれかに設定されていない限り、浮動している可能性のあるものは切り取られません。このメソッドの真の魔法は、要素に設定された高さを与えずに、オーバーフローを隠しに設定すると内側の要素の高さになります。

ここで、imgはフローティングであるため、divはimgを囲んでいません。

<div><img style="float:left;height:100px" /></div> 

ここで、divは、適切なオーバーフローを持つimgの高さを実際に実現します。

<div style="overflow:hidden"><img style="float:left;height:100px" /></div> 

あなたがそれを設定した高さを与えることだったし、その後セットオーバーフローが隠されている場合、それはそれ以外の外側にオーバーフローしていた何かを切るだろう。

<div style="overflow:hidden;height:50px"><img style="float:left;height:100px" /></div> 

例多くにこれらの技術はclear:bothタイプの余分なマークアップを回避するために使用することができることに注意してください。

3

overflow: hidden;には、flooded liが含まれています。 overflow: hidden;は、新しいブロック書式設定コンテキストを作成します。これは、独自のブロック書式設定コンテキストを持つ要素で、浮動小数点数を含みます。オーバーフローでAdding CSS border changes positioning in HTML5 webpage

+0

私は複数の回答を受け入れることができたらいいですか?ありがとう! –

0

私はこのもう少し説明してここにStackOverflow上の別の答えを指します隠された、内容は運転しない/ ULの寸法を押してください。 ULの寸法は、内容が内部に収まるかどうかを無視して無視します。

オーバーフローなし:コンテンツとその動作が隠されていても、ULの全体的な大きさを左右する場合があります。これは主に、ULがその内容によって境界が設定/影響を受けるコンテナのほうが多いためです。オーバーフローが隠されていると、ULはコンテナではなくオーバーライドディメンションを持つビューポートとして機能します。

関連する問題