Здравствуйте.
Нахожусь в начале пути освоения методологии БЭМ, разбираюсь с именованием блоков и не могу понять:
Есть меню
<ul class="menu">
<li class="menu__item">1</li>
<li class="menu__item">2</li>
</ul>
Если меню находиться в блоке, например, aside, я хочу добавить микс для изменения стандартного представления меню и его пунктов. Если с наименованием класса самого меню все более-менее понятно — aside__menu
, но как должен называться класс пункта меню, aside__item
?
<div class="aside">
<ul class="menu aside__menu">
<li class="menu__item aside__item">1</li>
<li class="menu__item aside__item">2</li>
</ul>
</div>
Насколько я понимаю, это не принципиально. Ты можешь миксовать любые БЭМ сущности между собой. Можно миксовать даже "родителя" с собственным "ребенком" (как говорил Владимир, это ни в коем случае не "инцест"). Тут все достаточно гибко.
Спасибо.
Понимаю, что вопросы возникают из-за того, что пытаюсь применить БЭМ ограниченно — только на css, если мыслить и проектировать сразу независимыми блоками, вопросов было бы меньше.
Основной вопрос именно в именовании, как понимаю назвать класс как-то типа asidemenu-item будет как-то неправильно. Но aside большой блок там не только menu, но и много других блоков, вот и думаю, что asideitem может не совсем точно отражать суть элемента.
Если
aside__item
не точно отражает суть, то нет причин не назвать егоaside__menu-item
— gzip сожмет такие строки примерно одинаково, пользователи разницы не почувствуют. А вот разбираться с понятным кодом через пару-тройку месяцев будет куда приятнее ;)Спасибо, буду осваивать на практике.