Відповіді:
overflow:auto;на диві, що міститься, роблять усе видиме всередині нього (навіть плаваючі предмети), а зовнішній дів повністю обертається навколо них. Дивіться цей приклад:
.wrap {
padding: 1em;
overflow: auto;
background: silver;
}
.float {
float: left;
width: 40%;
background: white;
margin: 0 1%;
}
<div class="wrap">
<div class="float">Cras mattis iudicium purus sit amet fermentum. At nos hinc posthac, sitientis piros Afros. Qui ipsorum lingua Celtae, nostra Galli appellantur. Petierunt uti sibi concilium totius Galliae in diem certam indicere. Ambitioni dedisse scripsisse iudicaretur.</div>
<div class="float">Mercedem aut nummos unde unde extricat, amaras. A communi observantia non est recedendum. Quisque ut dolor gravida, placerat libero vel, euismod. Paullum deliquit, ponderibus modulisque suis ratio utitur.</div>
</div>
overflowбуло додано). Виправлено це шляхом вилучення overflow: auto;з класу, а також heightселектора
Існує не один спосіб очистити поплавці. Перевірити їх можна тут:
http://work.arounds.org/issue/3/clearing-floats/
Наприклад, clear:bothможе працювати для вас
#element:after {
content:"";
clear:both;
display:block;
}
#element { zoom:1; }
overflow: auto;буде вирізати вміст (як оздоблення фокусом), який переповнюється поза елементом, але це не буде.
У багатьох випадках overflow: auto;цього буде достатньо, але заради доопрацювання та перехресної підтримки браузера подивіться на Clearfix, який зробить роботу для всіх браузерів.
Розглянемо наступну розмітку ..
<div class="clearfix">
<div class="content">Content 1</div>
<div class="content">Content 2</div>
</div>
Поряд із наступними стилями ..
.content { float:left; }
.clearfix { ..from link.. }
Без чіткого виправлення батько divне мав би зросту через те, що він плаває дітьми. Очищення змусить батьків вважати плаваючих дітей.
overflow: auto;