Методы clearfix
1. Old school — пустой элемент с clear в конце контейнера:
<div class="container">
<div class="el-1">float...</div>
<div class="el-2">float...</div>
<br class="clear">
</div>
2. Overflow — overflow: hidden (или auto) на контейнере заставляет его растянуться по высоте float-детей:
.container {
overflow: hidden;
}
3. Класс clearfix через псевдоэлементы:
.clearfix::before,
.clearfix::after {
content: "";
display: table;
}
.clearfix::after {
clear: both;
}
.clearfix {
zoom: 1;
}
<div class="container clearfix">
<div class="el-1">float...</div>
<div class="el-2">float...</div>
</div>
Итог
Сегодня float+clearfix реже нужны из‑за flex/grid, но на собеседовании метод с ::after { clear: both } всё ещё классика.