@greencost

Именование заголовков и их стилизация по БЭМ?

Доброго времени суток, есть вопрос.

Допустим, есть простейшая структура html из article, внутри которого несколько section со своими заголовками. Обычно, я это пишу так:
<article class="article">
  <h1 class="article__title">Заголовок h1</h1>
  <section class="section">
    <h2 class="section__title">Заголовок секции h2</h2>
  </section>
</article>

Т.к. стили заголовков на всех страницах и секциях почти всегда одинаковы, то я для них создаю и вызываю mixin
@mixin h1 {
  ...
}
.article__h1 {
  @include h1;
}

Мне кажется это удобным и логичным, и вопросов до этого не возникало. На последнем проекте (фриланс) за такой подход стали быть по рукам. Предлагают сделать прям отдельные классы h1,h2,h3,.. и миксовать их в html с элементами. Т.е. получится так:
<article class="article">
  <h1 class="h1 article__title">Заголовок h1</h1>
  <section class="section">
    <h2 class="h2 section__title">Заголовок секции h2</h2>
  </section>
</article>

Мотивация - улучшение читаемости и более простое переиспользование. Как именно это упрощает переиспользование я не понимаю, а внятного ответа добиться не удалось: "Переделай вот так и не люби мозги".

Собственно, мой вопрос - а как вы подходите к вопросу наименования и стилизации заголовков? Sass/Less миксины? Отдельные классы? Пишите для каждого заголовка каждой секции стили заново руками? Я встречал ещё вариант, когда на body вешается, например, класс page, а на самой странице заголовкам задаётся класс page__title / page__subtitle (ну и миксуется с section/article__title).
  • Вопрос задан
  • 376 просмотров
Пригласить эксперта
Ответы на вопрос 1
dgavrichkov
@dgavrichkov
Ну заголовки и другие часто используемые элементы действительно имеет смысл делать отдельными классами. Использование миксинов плохо тем, что они дублируют код в конечном css файле. Насчет улучшения переиспользования - вроде как очевидно. Если вам нужен заголовок, вы можете вставить его в любой блок. Даже имя article__title для них необязателен, если нужно кастомизировать или задать отступы - это делается каскадом
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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