我試圖改編一些HTML/CSS代碼到BEM方法,但是看到HTML的類我覺得我做錯了什麼。BEM和嵌套的概念問題
我有一個嵌套的對象「footer__social」與一些嵌套的圖標。在官方BEM頁我結束了一個HTML代碼一樣,下面的常見問題的建議:
<footer>
<div class="footer__logo"></div>
<div class="footer__social">
<div class="footer__facebook"></div>
<div class="footer__twitter"></div>
<div class="footer__pinterest"></div>
<div class="footer__googleplus"></div>
<div class="footer__linkedin"></div>
<div class="footer__youtube"></div>
</div>
<p class="footer__copyright">2016 todos los derechos reservados</p>
<p class="footer__policy">Política de privacidad</p>
<p class="footer__terms">Términos y condiciones</p>
</footer>
對我來說,感覺很奇怪,有「footer__ 「在每個HTML標籤中。
我的想法是重命名「footer__social」,並開始一個BEM塊,將其重命名爲「social」,並將其子項重命名爲「social__facebook」等等,但感覺「社交」塊與頁腳(它只出現在那裏)。
<footer>
<div class="footer__logo"></div>
<div class="social">
<div class="social__facebook"></div>
<div class="social__twitter"></div>
<div class="social__pinterest"></div>
<div class="social__googleplus"></div>
<div class="social__linkedin"></div>
<div class="social__youtube"></div>
</div>
<p class="footer__copyright">2016 todos los derechos reservados</p>
<p class="footer__policy">Política de privacidad</p>
<p class="footer__terms">Términos y condiciones</p>
</footer>
這樣做的正確方法是什麼?
謝謝!
關鍵是不要混淆上下文特定樣式和一般組件樣式。如果您需要專門爲「footer」IMO內部顯示的「社交」組件設置樣式,那麼它應該按照您在第一個場景中描述的方式進行定義,或者使用'class =「footer__social social」'來進行分離。 (這就是說我不是BEM純粹主義者)。 –