БЭМ. Не понятие основных понятий — блок, элемент, модификатор?

Элемент - составная часть блока, которая не может использоваться в отрыве от него. (из офф дока)

.post{}
.post__date{} // может использоваться как дата в комментариях к посту
.post__header{} //может использоватся как заголовок страницы
.post__body{} //может использоватся в том же комментарии


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

<div class="post"> 
   <div class="header header_post">Заголовок поста</div>
   <div class="date date_post">19.19.1900</div>
   <div class="body body_post">текст</div>
</div>
<div class="comment"> 
   <div class="date date_comment">19.19.1900</div>
   <div class="body body_comment">текст</div>
</div>


Выше html по БЭМ или нет? тогда что такое элемент ?
  • Вопрос задан
  • 1492 просмотра
Решения вопроса 2
БЭМ - шляпа.
Слишком много противоречий и требует лишней траты времени.
Юзай smacss, можно в связке с OOCSS
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Получается что блок это чисто Namespace для других сущностей.

как-то так да. Вот только у вас пример не правильный.

<div class="blog"> 
   <div class="header header_blog">Заголовок блога</div>
   <div class="date date_blog">19.19.1900</div>
   <div class="body body_blog">текст</div>
</div>
<div class="comment"> 
   <div class="comment_date date">19.19.1900</div>
   <div class="comment_body body">текст</div>
</div>


Вот так правильно.

Далее, помимо того что блок это "неэмспейс" он так же может содержать базовые стили, но не размеры и позиционирование. За это отвечают элементы.

Грубо говоря.

.blog{}
.blog__date{} // задает положение даты в... блоге? В блоге нет дат, даты есть у постов, так что выносим это в .post
.blog__header{} // задает положение заголовка, ширина, паддинги, маргины
.blog__body{} //задает положение содержимого в блоге, только положение на странице, ширина, паддинги, маргины
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tolfy
@tolfy
Фирменный стиль
BEM шляпа. bem2.pngbem1.gif
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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