美文网首页
CSS编写规范 BEM

CSS编写规范 BEM

作者: 打杂coder | 来源:发表于2019-05-04 19:35 被阅读0次

写 CSS 并不是一件简单的工作,类名的取法、归类,但项目愈加庞大,因为 CSS 引起的各种问题会越来越多。
之前一直对 css 不怎么感冒,也没有了解过相关规范,在项目中也都是用CSS Module或者Scoped Style这种形式将类名进行混淆,并没有一个良好的规范来约定整个项目的样式编写,因此特地找了下对应的规范 BEM

简单讲一下BEM的命名规则,BEM分为 3 块 Block Element Modifiler

通用要求如下:

  • 类名可以包含拉丁字母,数字和短划线
  • 只使用类选择器 即 class
  • 不要使用 tag name 比如 h1 p
  • 与当前的页面的其他 block 或者 Element 没有依赖关系

Block


Block即为块,通常的话我们可以根据组件来进行 block 的划分, 命名方面很简单:

 .block

Element


Element为元素, element 的类名为其上层 block 的名称再加上__

 .block__elem

Modifier


Modifier为 block 或者 element 的某种状态, 类名为 block 或者 element 的类名加上--

 .block--theme-light
 .block__elem--theme-light

举几个例子理解下

block && element

<style>
  .block {
  }
  .block__elem {
  }
</style>
<div class="block">
  <div class="block__elem"></div>
</div>

modifiler

<style>
  .block {
  }
  .block--theme {
  }
  .block__elem {
  }
  .block--theme .block__elem {
  }
  .block__eleme--disable {
  }
</style>
<div class="block block--theme">
  <div class="block__elem  block__eleme--disable"></div>
</div>

整体下来,BEM 还是挺简单的,感觉很适用于 UI 组件库这样的场景,同时也可以和 css module 结合使用.总的来说,BEM 整体提供了一套规范来树立一个比较良好的结构,遵循一定的规则来约束开发者,但是也会带来类名过长等问题。以后的项目的话可以尝试使用

相关文章

  • CSS编写规范 BEM

    写 CSS 并不是一件简单的工作,类名的取法、归类,但项目愈加庞大,因为 CSS 引起的各种问题会越来越多。之前一...

  • 简单好用的CSS命名规范

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

  • CSS代码规范

    CSS规范 一.命名规范BEM(Block Element Modifier) 1.Block name 1) 实...

  • CSS命名——BEM

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

  • BEM(CSS命名规范)

    在Web项目中规范css命名还是很有必要的,BEM传送门。 通过阅读Element-UI源码来分析学习BEM规范,...

  • web前端经验分享

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

  • css BEM书写规范

    [规范]css BEM书写规范 BEM是基于组件的web开发方法。其思想是将用户界面分隔为独立的块,从而使开发复杂...

  • css-BEM OOCSS

    BEM是什么? 关于BEM 简单来说 理解成css的命名一种规范。 B E M分别指:Block Element ...

  • CSS BEM 命名简介

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

  • CSS命名规范—BEM

    背景:最近上了一个前端项目,技术栈是angular + ionic。在听别的前端人员讨论的时候听到一个词叫BEM,...

网友评论

      本文标题:CSS编写规范 BEM

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