Какие плюсы и минусы объектно-ориентированного процесса в CSS?
Основы CSS
Объектно-ориентированный CSS (OOCSS) — подход, где интерфейс собирается из переиспользуемых «объектов»: структура отделена от оформления, а контейнер — от содержимого.
Принципы
- Структура отдельно от скина:
.mediaзадаёт раскладку,.theme-dark— цвета. - Контейнер отдельно от содержимого: стиль не зависит от того, где лежит элемент (
.title, а не.sidebar h2).
<div class="media media--small">
<img class="media__image" src="avatar.png" alt="" />
<div class="media__body">Текст</div>
</div>Плюсы
- переиспользуемые блоки и меньше дублирования;
- небольшой и предсказуемый CSS;
- стили не ломаются при переносе в другое место страницы.
Минусы
- много классов в разметке;
- нужно хорошо продумать набор объектов заранее;
- без строгих правил превращается в хаос из мелких классов.
Наследие
Идеи OOCSS легли в основу БЭМ, utility-first и компонентного подхода.
Коротко для собеседования
OOCSS разделяет структуру и оформление, контейнер и содержимое, давая переиспользуемые блоки ценой большего числа классов и необходимости продумывать систему.
Подробнее: Smashing Magazine — An Introduction To OOCSS