Powiedziano mi, że nie miałem racji, pisząc kod, tak jak poniżej. Przypuszczam, że elementy nie mogą zawierać bloków i ich złego b.e.m.Elementy mogą zawierać bloki w bem
<ul class="b-nav">
<li class="b-nav__item">
<a href="#" class="b-nav__item__link"> Item </a>
</li>
</ul>
Myślałem o napisaniu tego w ten sposób, ale nie pokazuje on również hierarchii.
<ul class="b-nav">
<li class="b-nav__item">
<a href="#" class="b-nav__link"> Item </a>
</li>
</ul>
Oto inny sposób, ale wydaje mi się, że jest gorszy od powyższego przykładu.
<ul class="b-nav">
<li class="b-nav__item">
<a href="#" class="b-link"> Item </a>
</li>
</ul>
Czy sposób, w jaki oryginalnie to zakodowałem, jest nieprawidłowy? Jeśli tak, dlaczego i jaka jest najlepsza alternatywa.
Czym dokładnie jest różnica między dwiema pierwszymi próbkami? I, czy pytasz tylko o nazwy klas? – xec
Nie widzę różnicy ani błędu w tym, co zrobiłeś. –
@EricHarms Co złego jest używanie BEM dla większości stron świata rzeczywistego. Zazwyczaj lepiej jest korzystać z podstawowych funkcji CSS, takich jak selektor podrzędny. Twój kod HTML powinien wyglądać następująco: '
- Item
', a twoje selektory CSS powinny być takie jak 'UL.nav> LI',' UL.nav A' lub 'UL. nav> LI> A'. –