Зачем clearfix нужно добавлять еще и c помощью псевдоэлемента :before?

Зачем clearfix от Nicolas Gallagher нужно добавлять еще и c помощью псевдоэлемента :before?

.clearfix:before,
.clearfix:after {
    content: " ";
    display: table; 
}

.clearfix:after {
    clear: both;
}
  • Вопрос задан
  • 8569 просмотров
Решения вопроса 1
Не обязателен :before для очистки floats, но это позволяет избежать проблем с схлопывающимися верхними отступами в современных браузерах.

Including the :before selector is not necessary to clear the floats, but it prevents top-margins from collapsing in modern browsers. (с) Nicolas Gallagher


Если захотите почитать про это ещё:
clearfix Reloaded + overflow:hidden Demystified
How to "patch" clearfix so it can better handle co...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iskros
@iskros
Руководитель проектов
Хороший вопрос, вот clearfix от rhr.me/:

/* Clearfix  */
.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}


Здесь можно посмотреть полный пример
https://github.com/operatino/markup-process/blob/g...
Ответ написан
mlnkv
@mlnkv
JavaScript Developer
затем, чтобы не добавлять дополнительный элемент с в верстку, который будет сбрасывать float
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы