【问题标题】:How to name subelements according to BEM?如何根据边界元法命名子元素?
【发布时间】:2019-09-02 11:41:46
【问题描述】:

我对 BEM(块元素修饰符)类命名约定有疑问。

如果我需要有 3 个嵌套的 div,我应该如何命名第 3 个的类?

.one{} //block
.one__two{} //block element
//?
<div class="one">
  <div class="one__two">
  
    <!-- How should I rename class "three"? -->
    <div class="three"></div> 
    
  </div>
</div>

我想将“.three”重命名为“one__two__three”或“two__three”,但我不确定这是否正确,因为据我了解,根据 BEM,不允许在元素内嵌套元素。

【问题讨论】:

    标签: html css class bem


    【解决方案1】:

    对我来说,这是关于关系,尤其是键值关系,所以我会这样处理。

    在不探索上下文命名范例的情况下,建议使用one__three

    或者,如果one 只是two 的容器,那么one 可以重命名为two__containerthree 重命名为two__item。当然,使用这样的编号标签并没有多大意义,但我希望你能看到它可能导致的结果。

    【讨论】:

    • 谢谢,当然,为了简单起见,这里添加了编号标签。有趣的是,键值方法将最重要的元素放在首位,然后我们可以添加一些次要的东西,即使它是一个关键元素的父元素,我理解正确吗?所以基本上命名顺序不代表这种情况下的嵌套顺序。
    • one__three 可以:那么它就是one 的一个元素。但是two__container / two__item 不符合 BEM。你可以做two/two__item(子块two及其元素)或one__three-container/threeone的元素和子块three)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2019-09-26
    • 1970-01-01
    • 2021-11-01
    • 2016-12-16
    相关资源
    最近更新 更多