Clearfix – отмена действия float

Если в родительском блоке есть элементы со свойством float: left то у него теряется высота и перестает работать margin.

У родителя с элементами float left теряется высота и не работает margin

Исправляет это добавление overflow: hidden к родительскому блоку, но если есть другие элементы, выходящие за границу блока или тень то они будут обрезаны.

Второй способ – добавить класс clearfix к родительскому блоку:

CSS:

/* clearfix */
.clearfix:before, .clearfix:after {
	content: " ";
	display: table;
}
.clearfix:after {
	clear: both;
}
.clearfix {
	*zoom: 1;
}
CSS

В действии

Без Clearfix:

<p>Текст, который идет до элемента.</p>
<div>
	<div class="box">float left</div>
	<div class="box">float left</div>
</div>
<p>Текст, который идет после элемента.</p>
HTML

С Clearfix:

<p>Текст, который идет до элемента.</p>
<div class="clearfix">
	<div class="box">float left</div>
	<div class="box">float left</div>
</div>
<p>Текст, который идет после элемента.</p>
HTML
07.12.2016 , обновлено 25.03.2020

Комментарии

, чтобы добавить комментарий.

Другие публикации

Вывод массива колонками
Несколько примеров как вывести одномерный PHP-массив в виде таблицы, плиток и списком в несколько колонок. Имеем массив городов...
20.05.2020
348
0
Пример парсинга html-страницы на phpQuery
phpQuery – это удобный HTML парсер взявший за основу селекторы, фильтры и методы jQuery, которые позволяют...
18.03.2020
2947
+2
Работа с Input Text jQuery
Сборник приемов JQuery для работы с текстовыми полями. Во всех примерах используется следующий html код...
02.02.2018
39521
+6
Модальное окно на затемненном фоне
Для модальных окон есть множество плагинов такие, как fancybox, Twitter Bootstrap и т.д. Но бывают случаи когда нет...
12.12.2018
17112
+7
Стилизация Checkbox
Несколько примеров как изменить внешний вид чекбоксов с помощью CSS, изображений и немного JS.
22.04.2020
1524
+1
Как скрыть лишний текст в блоке
Имеем несколько колонок с разным по длине текстом, нужно сделать их одинаковой высоты и скрыть лишнее.
15.04.2020
1426
+1