BEM代码规范简单介绍

BEM是一个命名约定,让前端代码更容易阅读和理解,更容易协作,更加健壮和明确,而且更加严密。

B:Block(块)
E:Element(元素)
M:Modifier(修饰符)
是由Yandex团队提出的一种前端CSS命名方法论。

 

命名约定:

.block{}    //.block代表了更高级别的抽象或组件
.block__element{}  //.block__element代表.block的后代,用于形成一个完整的.block的整体。
.block--modifier{}   //.block–modifier代表.block的不同状态或不同版本。

 

使用BEM命名,可以获得更多的描述和更清晰的结构,从其名字可以知道某个标记的含义。通过查看HTML代码中的class属性,就能知道元素之间的关联。

复制代码
<div class="article">
    <div class="article__body">
        <div class="tag"></div>
        <button class="article__button--primary"></button>
        <button class="article__button--success"></button>
    </div>
</div>


// 在css预处理器中使用,如LESS、SASS等预处理器语言来编写CSS
<style lang='scss" secod>
.articke{
    &__body{
        background-color:#fff;
    }
    &__button{
        &--primary{background:#1890ff;}
        &--success{background:#ff4d4f;}
    }
}
</style>
复制代码

 

 

使用插件

在項目中使用插件saladcss-bem    安裝依賴包

npm i sass sass-loader saladcss-bem -S

創建配置.postcssrc.js

复制代码
module.exports = {
  plugins: [
    require("saladcss-bem")({
      defaultNamespace: "em", //空間命名
      separators: { //分離器
        descendent: "__", //派生符號
      },
      shortcuts: { //描述別名簡寫
        modifier: "m",
        descendent: "d",
        component: "c",
      },
    }),
  ],
};
复制代码

html 中使用

复制代码
<div class="home-page em-page">
    <h3>Home</h3>
    <div class="em-page__login">登录</div>
    <div class="em-page__section">内容部分</div>
    <div class="em-page__footer">
      <div class="em-page__footer--describe">底部描述</div>
      <div class="em-page__footer" :class="{'is-what':true}">what is this</div>
    </div>
  </div>
复制代码

css 中使用

复制代码
@c page {
  color: #555;
  @d login {
    color: red;
  }
  @d section {
    broder: 1px solid #999;
    color: #fff;
    padding: 10px;
    background-color: #4f4f4f;
  }
  @d footer {
    background-color: #fff;
    @m describe {
      font-size: 24px;
    }
    @when what {
      font-size: 36px;
    }
  }
}
复制代码

编译后代码参考

复制代码
.em-page {
  color: #555
}
.em-page__login {
    color: red
}
.em-page__section {
    broder: 1px solid #999;
    color: #fff;
    padding: 10px;
    background-color: #4f4f4f
}
.em-page__footer {
    background-color: #fff
}
.em-page__footer.is-what {
      font-size: 36px
}
.em-page__footer--describe {
      font-size: 24px
}
复制代码

 



 

posted on   一名小学生呀  阅读(373)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示