0

私はかなり単純なレイアウトを持っています - 左に浮かぶメイン div。その中に、両方のスタイルをクリアした他の div をネストします。これは簡略化されたバージョンです(すべてのアイテムにサブディビジョンがあります):

<div id="wrapper" class="floatLeft">
    <div id="mainMenu" class="clearBoth">
        <div id="item1" class="clearBoth">
        </div>
        <div id="item2" class="clearBoth">
        </div>
        <div id="item3" class="clearBoth">
        </div>
     </div>
 </div>

 .clearBoth {
      clear: both;
  }
  .floatLeft {
      float: left;
  }

問題は、item3 の高さが何らかの理由で 0 になるように計算されることです。その中のすべての要素がラッパー div に流出します。メイン メニューの div には背景などがあるため、見栄えが悪くなります。項目 3 に「overflow:hidden」のスタイルを追加すると、問題なく表示されます。なぜですか? なぜオーバーフローがあるのか​​ わかりませんか?ただし、最も重要なのは、item3 の高さが 0 と計算されるのはなぜですか?

これはjsfiddle http://jsfiddle.net/uPtCd/へのリンクです

4

2 に答える 2