Этот вопрос лучше всего объяснить этой скрипкой со следующим HTML:
<div class="outer">
<div class="inner-left"></div>
<div class="inner-right"></div>
</div>
CSS
.outer {
width: 100px;
border: solid 5px #000;
}
.inner-left {
float: left;
height: 200px;
width: 50px;
background: #f00;
}
.inner-right {
float: right;
height: 200px;
width: 50px;
background: #0f0;
}
В принципе, мне интересно, почему overflow: hidden
заставляет внешний элемент расти по высоте, охватывая два плавающих элемента?