Задать вопрос
Dimensi
@Dimensi
Совсем недавно начал познавать верстку.

Как правильно делить на блоки, элементы и модификаторы?

Прочитал про бем, попробовал его 2 раза при верстке сайтов, понравилось. На тостере задавался уже вопрос такой же, но я все равно не могу понять, что делать если у меня 3 уровня вложенности.
Вот пример (буду писать на jade)
.contatcs
   .left-side
       .title
       .accordion
           ul
   .right-side

Я для каждой страницы создаю отдельный блок в котором уже все остальное размещаю. В общем специфическая обертка для отделение страниц по верстке друг от друга. Чтоб я сам понимал, что на странице contacts.html есть блок в котором контакты. Кстати если есть замечания по этому поводу, скажите пожалуйста, мне кажется, что это не правильно)
В общем есть у меня блок contacts в нем есть 2 блока левый и правый, в левом блоке есть элемент заголовок и много аккордеонов внутри которых свои элементы. По своей логике я и пытаясь придерживаться bem я называю их так.
.contacts
   .contacts__left-side
        contacts__left-side_title? contacts__left-side__title? 
        .accordion
              .accordion__elem
              .accordion__elem2
   .contacts__right-side

И вот тут вопрос, как правильно назвать элемент title? Если у бем правило блок - элемент - модификатор.
Блок контакты будут только на странице контакты, блок контакты__левая-сторона только в блоке контакты (и обычная grid разметка к нему применяться не будет) в блоке контакты__левая-сторона у меня есть элемент title и аккордеон (который в свою очередь тоже блок). Это я расписал, чтоб показать, как я это вижу. Так как же правильно мне все это называть?
Или может использовать каскад в данном случае? И сделать элемент title который будет только в contacts__left-side ???
.contacts__left-side title {
css
}
  • Вопрос задан
  • 399 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик и модуль по React
    9 месяцев
    Далее
  • Stepik
    Профессия Frontend-разработчик
    6 месяцев
    Далее
  • Skypro
    Веб-разработчик (c индивидуальным сопровождением)
    9 месяцев
    Далее
Решения вопроса 1
JiSeven
@JiSeven
web-developer
В данном случае left-side и right-side нужно делать блоками. У бема нет такого понятия как элемент в элементе. Если такое происходит, то верхний элемент нужно делать блоком
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Казань
от 75 000 до 125 000 ₽
Инком Нижний Новгород
от 160 000 до 230 000 ₽
ITK academy Краснодар
от 220 000 до 300 000 ₽