固定幅 (300px + 40px マージン) の要素と固定値 (400px + 40px マージン) の整数倍の高さの要素をフロートさせようとしています。ちょうど 2 行に収まるように固定幅のコンテナー内にそれらを浮かせています (680px = 2*300px + 2*40px)。IE 以外のブラウザーはこのタスクを完全に実行しますが、IE8 は理解できない理由で失敗します。なぜ IE8 がこの一見単純なタスクを実行できないのか、明示的に 'clear: left;' を使用せずに修正できるかどうかを説明できますか? それらの要素について?(その要素にインラインの「clear: left;」を追加すると、IE8 はそれをクリアしますが、その位置はまったく変わらないため、要素が「tall」要素に対して「ぶつかり合っている」わけではありません。)
HTML:
<div id="boxes">
<div class="box tall"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
CSS:
#boxes {
position: relative;
width: 680px;
margin-left: -40px;
}
.box {
position: relative;
float: left;
width: 300px;
height: 200px;
margin-left: 40px;
margin-bottom: 40px;
background-color: red;
}
.box.tall {
height: 440px;
}