Jump to content
  • 0

БЭМ и именование заголовков


Question

Почитал про БЭМ в очередной раз. И задумался над одной вещью. Пусть у нас есть несколько блоков на странице. У каждого блока есть заголовок. Заголовки одинаковые. То есть их можно описать одними и теми же CSS-правилами.

 

С одной стороны, логично заголовки обозначать как элементы блока. А с другой, так как они одинаковые, можно выделить в отдельный блок. Кто что думает по этому вопросу?

Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Если очень хочется, можно и совместить.

<div class="block">    <h2 class="header block__header">Заголовок блока</h2>    <div class="block__content">        Содержимое блока    </div></div>

Если это нужно в вашем случае.

Link to post
Share on other sites
  • 0

Имхо, тут удобно ввести глобальный префикс для таких классов, чтобы отличать классы блоков от общих.

/* global.css */.g-header{   font-family: Arial, sans-serif;}/* и например модификаторы для уровня */.g-headel--level_1 {   font-size: 24pt;}.g-headel--level_2 {   font-size: 18pt;}

Но с таким подходом страдает полная автономность блока: появляется зависимость от кода не принадлежащего блоку. А это ведь killer-feature BEM.

Edited by Быколай
Link to post
Share on other sites
  • 0

По БЭМ не должно быть классов вне блоков. Поэтому повторяющийся заголовок оформляем отдельным блоком, если внутри какого-то другого блока он несколько отличается — подмешиваем к нему элемент блока. Ну или можно подмешать и заранее, «на всякий случай», ничего плохого не случится.

Link to post
Share on other sites
  • 0

Я обычно делаю отдельный блок и вешаю на него модификатор:

<div class="block">    <h2 class="header header_block">Заголовок блока</h2>    <div class="block__content">        Содержимое блока    </div></div><div class="block2">    <h2 class="header header_block2">Заголовок блока</h2>    <div class="block2__content">        Содержимое блока    </div></div>и т.д.
Link to post
Share on other sites
  • 0

rash, т.е. один html-элемент будет одновременно являться определённым блоком и элементом другого блока? 

Да, это вполне допустимо и ничему не противоречит.

 

Я обычно делаю отдельный блок и вешаю на него модификатор:

 

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

 

Подмешиваем элемент блока в том случае, когда изменения нужно сделать в контексте блока-родителя. То есть в общем случае тогда, когда без БЭМ мы бы использовали контекст ".block .header". По БЭМ-у мы доопределяем стили уже у элемента блока .block__header. Я например часто использую такой прием, когда нужно спозиционировать блок внутри блока-родителя, тогда я уже позиционирую его как элемент родительского блока. Ну или размеры задать, или как-то иначе адаптировать отображение всего блока внутри конкретного родителя.

  • Like 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • 3 Опрос

    You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.
  • Обсуждения

    • Здравствуйте. Попробуйте начать с этого примера:
    • Требуется сделать строку ввода в которые вписывается опреленная ссылка(любая) например:"https://htmlforum.org/forum/123"  Нужно, чтобы по нажатию кнопки в веденной ссылке менялась половина до опреденного домена типа org с того что было например на "https://123htmlsuper.ru/forum/123" . То есть не просто с org на ru, а полностью от https до слеша перед org Дальнейший вывод этой ссылки или кнопки для перехода на эту ссылку  Нужно это для сайта в "блокноте" html css Help
    • Почему при адаптиве налазят блоки друг на друга?
    • Как правильно сделать оформить header используя только html и css  чтобы получилась как на этом макете Почему у меня правое меню постоянно плавает и как кнопку поиска правильно спозиционирорвать в самой форме чтобы она никуда не уезжала? Что не так в моем коде? https://jsfiddle.net/kjgydnfs/27/
    • Спасибо!!!     А почему в этом задании перезаписав значение  для псевдоэлемента after на то что ниже по коду, он перекрыл другой псевдоэлемент before, соответственно убрав половину видимой области этого псевдоэлемента. Почему, например, не before выше чтобы перекрыть after?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy