Jump to content
  • 0

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


binomer
 Share

Question

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

 

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

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 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 comment
Share on other sites

  • 0

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

Link to comment
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 comment
Share on other sites

  • 0

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

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

 

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

 

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

 

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

  • Like 1
Link to comment
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.

 Share

  • Similar Content

    • By konoplev_ps
      Добрый день.
      Проблема: Настраиваю в отдельном CSS стили для шрифтов h1, h2 и т.д., но когда начинаю их применять внутри тега div - не вижу изменений. Сам CSS подключил, в нем и другие настройки стилей, которые успешно применяются к файлу html.
    • By stelmah.taganrog
      Сделал для себя учебную верстку по бесплатному макету. Вопросы на которые, возможно, мне смогут дать ответы более опытные верстальщики:
      - Постарался соблюсти принцип БЭМ для именования классов. Верно ли я применяю?
      - К сожалению, не удалось сделать, чтобы макет абсолютно соответсвовал PixelPerfect, особенно это заметно в тексте. Тестировал в Chrome 55.0.2883.87 (Windows 10). Подскажите на примере какого-нибудь блока в чем я делаю ошибки
      - Так же хотелось бы прочесть любую конструктивную критику

      Небольшое отступление, добавлю обязательно еще мобильный вариант и слайдеры, это в процессе. Хотелось бы узнать ошибки на том этапе, что выполнен.

      Исходники https://github.com/oleg-tgn/html-template-beautiful-things
      Демо https://oleg-tgn.github.io/html-template-beautiful-things/
    • By Ronin1999
      <h1>Всем привет.</h1>
      <p>Возникла большая проблема  Неделю назад я начал верстать свой первый сайт. И сегодня уже готовые 3-4 его страниц на html.  У меня будет свой блог. Но вот что делать дальше? Как упростить жизнь? Искал в Интернете, что нужно установить движок, чтобы автоматизировать действия на сайте.   Но от этих CMS меня тошнит.  Буду делать свой CMS.  Смотрю уроки  по созданию этого движка. Смотрю также уроки по PHP. . Это просто бардак.</p>
       Что нужно сразу делать после верстки?  
    • By abubakr
      Здравствуйте!
      Проблема: При доб. текста в "div.block-item" (внутри тегов <p>,<span>,<h5>) он уходит вниз.
      С помощью "display: table" для <h5> можно это исправить, однако "text-align: center" не будет работать.
      Код HTML:
      <html> <head> <link rel="stylesheet" href="style.css"> <meta charset="utf-8"> </head> <body> <div class="center"> <div class="block"> <div class="block-item"></div> <div class="block-item"> <h5>TEXT</h5> </div> <div class="block-item"></div> </div> </div> </body> </html> Код CSS:
      .center{ width:1200px; margin: 0 auto; } .block{ margin-top: 30px; border: 1px solid #000; } .block-item{ display: inline-block; margin-right: 30px; width: 360px; height: 450px; background: #fff3f0; } .block-item:last-child{margin-right: 0;} .block-item:hover h5{display:none;}
      В чем проблема и как можно его исправить?
      Заранее спасибо.
    • By Endorphin
      https://github.com/AlekseyPn/alekseypn.github.io/blob/master/index.html
      вот есть верстка, разметку делал по свеже изученым материалам по разметке БЭМ, кто уже давно пользуется даннлй методологией оцените, интересно ваше мнение, и правильно ли я понял как нужно размечать по БЭМ, можете потыкаться по репозитозиторию, там есть еще несколько файлов. Заранее спасибо.
×
×
  • 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