美文网首页
CSS BEM 命名简介

CSS BEM 命名简介

作者: W北落师门W | 来源:发表于2017-12-26 11:15 被阅读0次
  1. BEM是一种CSS命名规范,旨在使用严格的命名约定,使得CSS类的命名更加透明,能直接了解上下文含义。BEM分别代表块(Block)、元素(Element)、修饰符(Modifier)。

    • 页面由多个[ 块 ]构成
    • [ 元素 ]是[ 块 ]的组成部分,他们是上下层级的关系
    • [ 修饰符 ]表示[ 块 ]或[ 元素 ]某一种状态或修饰
    • [ 元素 ]用双下划线表示,如.block__element {...}
    • [ 修饰符 ]用双中划线表示,如.block--modifier {...}
    • 可以用中划线链接前缀与块,如js-block {...}
      • 关于前缀,通常有这些:l-表示布局相关的元素、c-表示组件、u-表示工具类、js-表示JS需要获取的元素,不会出现在CSS样式文件中
  2. 命名的基本原则

    • CSS中只能使用类名

    • 每一个块名应该有一个命名空间(前缀)

    • 每一天CSS规则必须属于一个块

    • 一个块中元素的类名必须用父级块的名称作为前缀

      // 普通CSS
      .list{}
      .list .item{}
      
      // BEM
      .list {}
      .list__item{}
      
  3. 书写原则

    • 原则上不会出现两层以上选择器嵌套,用命名代替CSS嵌套的复杂性

    • 两层选择器嵌套出现在出现子元素的情况,示例

      <ul class="xxx">
          <li class="xxx__item">第一项
              <div class="xxx__product-name">我是名称</div>
              <span class="xxx__ming-zi-ke-yi-hen-chang">看类名</span>
              <a href="#" class="xxx__link">我是link</a>
          <li>
          <li class="xxx__item xxx__item_current">第二项 且 当前选择项
              <div class="xxx__product-name">我是名称</div>
              <a href="#" class="xxx__item-link">我是link</a>
          <li>
          <li class="xxx__item xxx__item_hightlight">第三项 且 特殊高亮
               <div class="xxx__product-name">我是名称</div>
              <a href="#" class="xxx__item-link">我是link</a>
          <li>
      </ul>
      
      .xxx{}
      .xxx__item{}
      .xxx__item_hightlight{}
      .xxx__product-name{}
      .xxx__link{}
      .xxx__ming-zi-ke-yi-hen-chang{}
      
      // 嵌套写法
      .xxx__item_current{
          .xxx__link{}
      }
      

参考:

相关文章

  • CSS BEM 命名简介

    BEM是一种CSS命名规范,旨在使用严格的命名约定,使得CSS类的命名更加透明,能直接了解上下文含义。BEM分别代...

  • 简单好用的CSS命名规范

    CSS命名规范 BEM命名法 BEM(Block, Element, Modifier)是由Yandex团队提出的...

  • SCSS 基础语法

    1. 选择器扩展 1. BEM 命名法(CSS 命名) BEM 全称为 Block Element Modifi...

  • web前端经验分享

    CSS技巧 解决css样式污染方案 命名约定 BEM命名规范 使用CSS Modules css实现新手引导效果 ...

  • 【译】前端BEM命名方法论之二:BEM中的重要概念

    【译】前端BEM命名方法论之一:BEM 官方简介文档【译】前端BEM命名方法论之三:命名惯例 重要概念 Block...

  • 【译】前端BEM命名方法论之三:命名惯例

    【译】前端BEM命名方法论之一:BEM 官方简介文档【译】前端BEM命名方法论之二:BEM中的重要概念 使用 BE...

  • CSS命名方法之BEM

    转自BEM —— 源自Yandex的CSS 命名方法论 BEM的意思就是块(block)、元素(element)、...

  • CSS命名方法之BEM

    转自BEM —— 源自Yandex的CSS 命名方法论 BEM的意思就是块(block)、元素(element)、...

  • CSS命名——BEM

    前言 详情见参考,下面的只是部分摘要 BEM是什么 BEM是一种CSS命名规范。BEM代表 “块(block),元...

  • Scss

    Scss 1.BEM命名方式 BEM是css的一种命名方式。B既Block,模块的意思;E既Element,元素的...

网友评论

      本文标题:CSS BEM 命名简介

      本文链接:https://www.haomeiwen.com/subject/bwpdgxtx.html