Войти с помощью github
Форум /

Всем доброго Как правильнее поступить с точки зрения БЭМ-методологии, чтобы не вводить в ступор опытных разработчиков, и придерживаться классических стандартов? Задачу можно решить разными способами, и именно в этом подвох:

Есть несколько блоков, очень похожих между собой. Пускай это будут куски страницы с разным цветом фона (каждый такой кусок является блоком). А внутри — текстовые элементы (заголовки, списки, параграфы…), которые, в зависимости от фона, нужно выводить разным цветом. Напрашивается вывод об использовании модификаторов.

Т.е. для начала описываем дефолтный (базовый) блок и все его элементы: получается следующий HTML div.b_block>p.b_block__elem, и два стиля впридачу .b_block {…}, .b_block__elem {…} Но как быть с, к примеру, с инверсной модификацией, когда цвет блока и текста меняются местами?

Что если применить модификатор только к блоку, т.е. div.b_block.b_block--inverted>p.b_block__elem, и селектором .b_block--inverted .b_block__elem { задать стили элементу } (подразумевается, что есть также стиль .b_block--inverted {…})? С таким же успехом можно навесить модификатор и на блок, и на элемент сразу. Или использовать два разных модификатора — один для блока, а другой для элементов. Вот только как правильнее?

Пример очень упрощен, но хорошо отражает суть моего ступора. Спасибо