使用BEM的导航栏结构的正确方法

时间:2017-04-13 14:35:44

标签: html css bem

我试图在CSS中围绕BEM命名,我想知道我是否正确理解它。

根据官方文档,元素是:

  

块的一部分,没有独立意义且在语义上   与它的块相关联。

鉴于下面的代码片段,*Main> genRow ["A","B","C"] [[("A",True),("B",True),("C",True)], [("A",True),("B",True),("C",False)], [("A",True),("B",False),("C",True)], [("A",True),("B",False),("C",False)], [("A",False),("B",True),("C",True)], [("A",False),("B",True),("C",False)], [("A",False),("B",False),("C",True)], [("A",False),("B",False),("C",False)]] *Main> genRow ["Foo","Bar"] [[("Foo",True),("Bar",True)], [("Foo",True),("Bar",False)], [("Foo",False),("Bar",True)], [("Foo",False),("Bar",False)]] 的子项都没有任何独立含义,所以我相信它们都符合元素的要求。

但是,当我最终获得类似from random import randint x = randint(0,99) def my_fun(): if x = 5 w = 2 return w elif x > 5: w = 1 return w else: w = 3 return w def my_func(): my_fun() print(w) 的类名时,我无法提供帮助,但感觉有一些代码味道。感觉我仍然在我的元素名称空间内嵌套了几层深层。

也许这完全没问题,以下示例是正确的实施,我只是欣赏第二意见。



.main-nav




1 个答案:

答案 0 :(得分:4)

确实可以。

CSS中缺少作用域的问题在您的标记中得到解决。选择特异性不会增加。所以请保持原样。

并且不要害怕长的名字,在gzip之后它与短变种一样。