kid-programmer
@kid-programmer

БЭМ, блок или элемент?

Всем привет! Постигаю БЭМ и возник вопрос, когда блок а когда элемент?
Например есть страница на которой есть специфический footer... этот footer будет только на это странице и больше не где, и есть еще footer который общий для всех.
Правильно ли будет сделать специфический футер для страницы элементом...
//специфический footer для страницы
.home-page__footer{}
.home-page__footer-content{}
.home-page__footer-item{}

//mod 
.home-page__footer-item_left{}
.home-page__footer-item_right{}

и общий
.footer{}
.footer__content{}
.footer__item{}

вообщем, как понять где лучше сделать блок а где элемент? и вообще правильно ли я понял БЭМ по названию классов
  • Вопрос задан
  • 955 просмотров
Решения вопроса 1
Блок имеет смысл вне зависимости от контекста. Футер же имеет смысл только как элемент страницы. Плюс почти всегда футер имеет какие-то характеристики, определяющие его положение: position, margin... и т.д. Что сразу характеризует его как элемент.

Но это если рассматривать его как часть одного проекта. А если посмотреть шире, то один и тот же по структуре футер можно использовать в разных проектах. Для страницы - это элемент, а в целом он может быть блоком.
Поэтому я думаю, что так:

class="footer page__footer"

При этом классу page__footer задать стили, определяющие его положение на странице, а классу footer - все остальное.

Если на одной странице футер отличается, то его следует переопределить через модификатор. Если отличия в положении, то модифицировать следует элемент: page__footer_modificator, при отличиях в оформлении - модифицируете блок: footer_modificator
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kid-programmer
@kid-programmer Автор вопроса
сам спросил и сам ответил ;) тут ответ
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы