我试图改编一些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纯粹主义者)。 –