BEM CSS、全局和类命名

BEM CSS、全局和类命名,css,naming-conventions,bem,Css,Naming Conventions,Bem,我试图确定一种在CSS中标准化类的方法,用于多个项目 据我所知,通过为独立样式指定块级元素,该模型可以简化开发。我对这种方法的关注在于处理全球因素 示例: 我有两个“模块”:新闻和事件。这两个模块都有它们的项目列表,但在站点1上,模块是相同的,而在站点2上,它们有相当独特的样式 当前理解: 让我相信最好的方法是: <div class="news news--listing module module--listing">...</div> <div class="

我试图确定一种在CSS中标准化类的方法,用于多个项目

据我所知,通过为独立样式指定块级元素,该模型可以简化开发。我对这种方法的关注在于处理全球因素

示例:

我有两个“模块”:新闻和事件。这两个模块都有它们的项目列表,但在站点1上,模块是相同的,而在站点2上,它们有相当独特的样式

当前理解:

让我相信最好的方法是:

<div class="news news--listing module module--listing">...</div>
<div class="events events--listing module module--listing">...</div>
这感觉太过分了,但我不确定是否有更好的解决方案。我能把这个命名惯例保留在子列表中吗

问题:


我想知道是否有我可能不知道的最佳方法,或任何维护这种方法的问题。

您可以使用的概念是,在不同的项目中为相同的实体使用不同的样式,并且仍然在一个地方保留通用代码,而不添加额外的
模块
实体。

您可以使用的概念是,在不同的项目中为相同的实体使用不同的样式在不添加额外的
模块
实体的情况下,仍将通用代码保留在一个位置。

块、元素、修改器方法(BEM)

以您的示例为例,情况如下:

<div class="[block]">
    <ul class="[block__element1]">
       <li class="[block__element2]">...</li>
       <li class="[block__element2] [block__element2--modifier]">...</li>
    </ul>
</div>

那么您的代码将如下所示:

<div class="news">
    <ul class="news__list">
       <li class="news__item">...</li>
       <li class="news__item news__item--selected">...</li>
    </ul>
</div>

请注意,修饰符(news\uu item--selected)后面总是跟在元素类(news\uu item)后面

更多信息:

BEM文档,快速入门:


举例说明边界元法:

块、元素、修改器方法(BEM)

以您的示例为例,情况如下:

<div class="[block]">
    <ul class="[block__element1]">
       <li class="[block__element2]">...</li>
       <li class="[block__element2] [block__element2--modifier]">...</li>
    </ul>
</div>

那么您的代码将如下所示:

<div class="news">
    <ul class="news__list">
       <li class="news__item">...</li>
       <li class="news__item news__item--selected">...</li>
    </ul>
</div>

请注意,修饰符(news\uu item--selected)后面总是跟在元素类(news\uu item)后面

更多信息:

BEM文档,快速入门:

举例说明边界元法: