Відповіді:
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;