BEM Methodology说,您不应该使用任何全局选择器,例如标签选择器,因此请使用NAV__ITEM和NAV__LINK。
带有主动修饰符的同一故事。您不应该拥有任何全球实体(您可以使用混音,但这有点不同)。因此,最好的方法是与Active(或经典BEM符号中的NAV______STATE_ACTIVE)一起使用。
BEM对JS,HTML(或模板)以及实际上任何其他块的技术都有税收。
主要想法是 堵塞 了解自己的一切:它的外观(CSS),其工作原理(JS),它应该产生的HTML(模板),其自身测试,文档,图像等。
而且,随着NAV块的CSS技术以声明的方式应用规则(您定义了一些选择器和与此选择器符合这些规则的所有节点),就像可以描述NAV块的JS相同的方式。
请看一下 http://xslc.org/jquery-bem/ 这是jQuery插件,可让您轻松地以BEM处理块。
如果您使用某些构建系统,则可以将所有这些技术放在文件系统上的同一文件夹中:
blocks/
nav/
__list/
nav__list.css
nav__list.js
__item/
nav__item.css
nav.css
nav.js
nav.test.js
nav.png
nav.md
拥有这样的文件结构,您可能会更深入地了解Bem eactery是什么,然后尝试i-bem.js: http://bem.info/articles/bem-js-main-terms/