Стандартная ситуация
<body class="body body_fixed">
<div class="logo">
LOGO
</div>
</body>
.logo {
font-size: 40px;
}
.body.body_fixed .logo {
80px;
}
Как мне такого рода CSS по папочкам разложить? Как посоветуете наименовать файлы? Что вообще можно сделать чтоб это грамотно сопровождать и deps какой и куда прикладывать. Решил упороться на сборщиках и правильной организации структуры. Настроил сборщики начал тесты проводить потом бац, а что делать со спецефичностью? Хочешь не хочешь но есть моменты когда от неё не уйти.
Если говорить строго про исходную разметку, то базовые стили стоит положить в
logo.css
, а переопределение от модификатора родителя — вbody_fixed.css
.Но можно рассмотреть еще такой вариант:
И переопределять от модификаьтора уже не независимый блок
logo
, а элементlogo
самогоbody
:А если у
.body_fixed
нет никаких стилей, то и вовсе избавиться от специфичности, модифицировав блокlogo
:Это пример сферический конь. Тот же fixed это модификатор который появляется от какого либо события и влияет на ОЧЕНЬ МНОГО блоков на сайте. Проходить все блоки js'ом и навешивать им свои модификаторы такая себе идея если есть возможность действовать проще. Вот я и спрашиваю.
Всё равно проблему не решает. Мы не можем таким образом менять к примеру тему со светлой на тёмную и навешивать на всё вокруг .body__<елемент>.
Изменение блока контекстом
Короче это из этой истории.
Простите. Кажется, я должен был понять это из именования, но мои телепатические способности блокирует какая-то аура.
Об этих ограничениях я тоже не догадался, руководствовался «Стандартной ситуацией».
На самом деле зависит от способа использования такой темы. Ведь если для выбора темы каждого компонента завязаться на модификатор для
body
, то не будет возможности иметь несколько тем на одной странице. А такая потребность возникает достаточно часто.