@Muvka

Может ли блок наследовать свойства или он должен быть полностью самодостаточным?

Здравствуйте. У меня есть блок title, который описывает, как должен выглядеть заголовок. Но проблема в том, что в каких то блоках текст в нём прижат к левому краю, в других он по центру, а в третьих он по центру только на определенном разрешении. Так вот, как правильно поступать в таком случае - писать миллион модификаторов для блока title или смешивать стили блока title и блока, в котором title является элементом? Просто вроде блоки должны быть самодостаточными.
  • Вопрос задан
  • 34 просмотра
Решения вопроса 1
Realetive
@Realetive
MODX Ambassador России, самозванный БЭМ-евангелист
Раз родительский элемент управляет отступами, это явно свойства ( элемента ) родительского блока.
Когда возникают такие дилеммы, нужно просто задать блоку / элементу вопрос: «А кто назначил тебе это правило?» и всё становится понятно — какие-то свойства отъезжают в модификатор, какие-то — в элемент внешнего блока.

Общие стили:
.title { display: block }
.title_align_left { text-align: left }
.title_align_right { text-align: right }
.title_align_center { text-align: center }


Элемент прижат к левому краю (модификатор .title_align_left добавил для наглядности):
.card
  .card__title.title.title_align_left

— card__title „говорит“: «внутри меня лежит блок title с модификацией align в значении left»

Элемент прижат к правому краю:
.card
  .card__title.title.title_align_right

— card__title „говорит“: «внутри меня лежит блок title с модификацией align в значении right»

Элемент выровнен по центру:
.card
  .card__title.title.title_align_center

— card__title „говорит“: «внутри меня лежит блок title с модификацией align в значении center»

Элемент прижат к левому краю, но на другом брейкпоинте выравнивается по правому:
.card__title { text-align: right }
@media (min-width: 720px) {
  .card__title { text-align: left }
}

.card
  .card__title.title

— card__title „говорит“: «внутри меня лежит блок title, но я сам управляю его align»

Надеюсь, аналогия ясна.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы