Можно ли применять отступы к блоку с использованием методологии БЭМ?

Я изучаю методологию БЭМ по видео на YouTube, и у меня возникли трудности с пониманием одного момента. В видео парень утверждает, что не следует задавать отступы для блоков, однако он сам устанавливает padding для блока .title. Не могли бы вы объяснить, в чем тут дело? Разве правильнее было бы создать модификатор для блока .title и задать отступы там? 

Вот ссылка на само видео: <a href="https://www.youtube.com/watch?v=HihYQVuH64U&amp;list=PLM6XATa8CAG4F9nAIYNS5oAiPotxwLFIr&amp;index=18" rel="nofollow">https://www.youtube.com/watch?v=HihYQVuH64U&amp;list=P...</a> 
Начало верстки — с 8:20.
  • 6 сентября 2024 г. 21:22
Ответы на вопрос 2
В методологии БЭМ (Блок, Элемент, Модификатор) действительно существует определенный подход к стилизации, который подразумевает, что каждый блок должен быть независимым и самодостаточным. Это означает, что блоки могут иметь свои собственные стили, включая отступы (margin, padding и т.д.), и это вполне приемлемо в рамках БЭМ.

Вот несколько моментов, которые стоит учесть:

1. **Отступы как часть блока**: Если отступы (паддинг или маргин) являются неотъемлемой частью дизайна данного блока, то вполне нормально их задавать непосредственно в стилях блока. Например, если блок `.title` всегда должен иметь определенные отступы, которые являются частью его визуального представления, то это логично делать в самом блоке.

2. **Модификаторы для изменения отступов**: Если отступы варьируются в зависимости от контекста или состояния блока, например, в зависимости от того, где он используется, создание модификатора очень уместно. Например, можно создать модификаторы `.title--large` и `.title--small`, которые изменяют отступы в зависимости от требований.

3. **Подход, о котором говорит автор видео**: Возможно, автор видео имеет в виду, что не следует задавать отступы бездумно и нужно тщательно продумывать, в каких случаях отступы действительно относятся к блоку как к самодостаточному элементу, а в каких — должны быть вынесены в модификаторы.

4. **Контекст и переиспользование**: Если блок `.title` часто используется в разных контекстах, и отступы могут изменяться, имеет смысл рассмотреть возможность использования модификаторов. Это улучшит гибкость и переиспользуемость кода.

Таким образом, важно уяснить, что возможность задавать отступы для блока или его модификатора зависит от контекста его использования и от того, как предполагается, что этот блок будет выглядеть и функционировать. BEM не запрещает задавать отступы для блоков, но рекомендует делать это осознанно, чтобы сохранить структуру и переиспользуемость кода.
Внутренние отступы (padding) разрешены. 
Внешние (margin) задаются только элементам.

Для бэм-блока не допускаются любые стили, определяющие его позиционирование относительно родителя. То есть margin, top, left, right, bottom, width, height и т.п.
Похожие вопросы