Урок 194 із 239
81%
Властивість float і батьківський блок без тексту в CSS
Вивчаємо проблему зникнення висоти батьківського елемента при використанні float та вирішення через clearfix.
Властивість float і батьківський блок без тексту в CSS
Якщо батьківський блок містить тільки дочірні елементи з float, він може втратити свою висоту.
Це відбувається тому, що плаваючі елементи випадають зі звичайного потоку документа і батьківський елемент їх більше не враховує.
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
</div>.parent {
width: 500px;
border: 1px solid red;
text-align: justify;
}
.child {
width: 200px;
height: 100px;
border: 1px solid green;
}.child {
float: left;
width: 200px;
height: 100px;
border: 1px solid green;
}Така поведінка вже знайома: float-елементи не впливають на висоту свого батьківського блоку.
Вирішення за допомогою clearfix
Щоб повернути батьківському елементу правильну висоту, додаємо після float-елементів порожній блок з clear: both.
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="clearfix"></div>
</div>.parent {
width: 500px;
border: 1px solid red;
text-align: justify;
}
.child {
float: left;
width: 200px;
height: 100px;
border: 1px solid green;
}
.clearfix {
clear: both;
} ❗ Важливо:
clearfix змушує батьківський блок врахувати висоту плаваючих елементів.
- float виводить елемент зі звичайного потоку.
- Батьківський блок не бачить висоту float-елементів.
- Через це висота контейнера може стати нульовою.
- clear: both після float відновлює висоту батька.
📌 Завдання:
- №1. Створіть контейнер parent.
- №2. Додайте два блоки child.
- №3. Додайте їм float: left.
- №4. Перевірте проблему з висотою батьківського блоку.
- №5. Додайте clearfix та виправте помилку.
💡 Показати підказку
Якщо контейнер не враховує float-елементи, додайте після них елемент з clear: both.
✅ Показати відповідь
.clearfix {
clear: both;
}