CSS медиа-объект: Clearfix против переполнения

Недавно я столкнулся с этой реализацией медиаобъекта OOCSS в среде inuitcss:

.#{$inuit-media-namespace}media,
%#{$inuit-media-namespace}media {
    @extend %clearfix;
    display: block;
}

.#{$inuit-media-namespace}media__img,
%#{$inuit-media-namespace}media__img {
    float: left;
    margin-right: $inuit-media-gutter;

    > img {
        display: block;
    }

}

.#{$inuit-media-namespace}media__body,
%#{$inuit-media-namespace}media__body {
    overflow: hidden;
    display: block;

    &,
    > :last-child {
        margin-bottom: 0;
    }

}

Хотя я знаю, что такое контекст блочного форматирования, я до сих пор не уверен, почему автор использовал .media Вместо того, чтобы использовать overflow: hidden; как в оригинальном медиа-объекте.

Я понял, что контекст форматирования блока в теле объекта необходим для предотвращения потока содержимого ниже изображения, но какое преимущество имеет clearfix для родительского элемента по сравнению с использованием свойства overflow для него?

1 ответ

Отличный вопрос! Прежде всего, Гарри Робертс, создатель инуитов, очень умен, поэтому я уверен, что у него были свои причины. Тем не менее, я не понимаю, несоответствие, однако, я, вероятно, не буду использовать overflow: hidden если только мне не нужно беспокоиться о том, что его содержимое будет вырезано или случайно добавлена ​​полоса прокрутки.

С помощью overflow: hidden это быстрое удобное решение для того, чтобы заставить элемент иметь макет, но использование clearfix обычно является более комплексным решением. В любом случае, похоже, что основной медиа-блок правильно стилизован для решения всех проблем с исправлением ошибок.

Очистка поплавков: обзор различных методов очистки

Оставайся классным!

Другие вопросы по тегам