Menu

Общие вопросы.

2018-10-12
2018-10-15
  • Roman Zakharov

    Roman Zakharov - 2018-10-12

    Во время презентации встал вопрос, как с помощью БЭМа реализовать пример со следующими входными данными:
    кнопка <button class="button"><span class="button__text"></span></button>
    шапка
    <header class="header>
    <button class="header__button button"><span class="button__text"></span></button>
    </header>

    задача: необходимо видоизменить span в шапке, например, сделать его курсивом или жирным.

    БЭМ решает задачу с семантической точки зрения. Первый вопрос, зачем нам изменять span? если при перемещении в заголовок меняется состояние кнопки, то мы добавляем модификатор, и решение выглядит следующим образом:
    <header class="header>
    <button class="header__button button"><span class="button__text button__text_state_active"></span></button>
    </header>,
    где .button__text_state_active { font-weight: bold }

    Если при перемещении span становится по смыслу частью шапки, то span должен стать элементом шапки, и решение выглядит следующим образом:
    <header class="header>
    <button class="header__button button"><span class="button__text header__text"></span></button>
    </header>,
    где .header__text { font-weight: bold }

     

    Last edit: Roman Zakharov 2018-10-12
    • Alexander Lapygin

      Ром, насколько я понимаю, суть вопроса была не в этом конкретном примере со span.
      Хотелось в принципе понять, как работать с множественной вложенностью блоков.
      Например, показать, как элемент, когда он своём развитии уже начинает тянуть на блок, оформляется как новый блок.

       
  • Roman Zakharov

    Roman Zakharov - 2018-10-12

    Лучше, чем в доке, не ответить - https://ru.bem.info/methodology/quick-start/#%D0%9A%D0%BE%D0%B3%D0%B4%D0%B0-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-%D0%B1%D0%BB%D0%BE%D0%BA-%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0--%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82

    Создавайте блок
    Если фрагмент кода может использоваться повторно и не зависит от реализации других компонентов страницы.

    Создавайте элемент
    Если фрагмент кода не может использоваться самостоятельно, без родительской сущности (блока).

     
    • Alexander Lapygin

      Ром, вопрос был не только в том, когда что создавать, а главным образом в том, чтобы понять, наверное, лучше на хорошем примере, как работать с множественной вложенностью блоков.
      Например, когда есть страница, на ней блок "документ", у него есть вложенный элемент "глава", который, в свою очередь, сам является блоком, в который входит блок-элемент "раздел", который содержит блок-элемент "подраздел", и.т.д.
      Как при этом организуется именование, "наследование" стилей, организация файловой структуры и т.п.
      Мне-то уже это в общих чертах понятно, я тут выступаю за доработку презентации, это пригодится потомкам ;)

       

      Last edit: Alexander Lapygin 2018-10-13
  • Roman Zakharov

    Roman Zakharov - 2018-10-15

    Надеюсь, что мой предыдущий ответ и пример из соответсвующего раздела (https://sourceforge.net/p/javaenterpriseplatform/discussion/design/thread/e24791f037/) отвечает на данные вопросы.

     
  • Alexander Lapygin

    Ром, по-моему, ты ничего не говорил об уровнях переопределения в БЭМ. Считаешь это несущественной возможностью ?

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.