美文网首页前端面试题
css BEM 命名规范

css BEM 命名规范

作者: 一代码农1970 | 来源:发表于2019-06-04 10:07 被阅读0次

BEM是块(block)、元素(element)、修饰符(modifier)的简写,由 Yandex 团队提出的一种前端 CSS 命名方法论。

BEM 命名约定的模式是:

.block {}
.block__element {}
.block--modifier {}

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

BEM的优势是:让前端代码更容易阅读和理解,更容易控制和扩展,更加健壮和明确,适合多人协作开发。

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

不足之处: 命名方式长而难看,书写不方便。可以用less或者sass 预处理器。比如:less中 css 嵌套写法,通过&符号去写css。就方便了很多。

怎么使用Bem格式呢。

一个网站,会有网站的头部组件,我们可以定义为 .header, 网站头部子元素,会有导航,这块元素可以定义为 .heander__nav。 导航中会有被选中的状态,我们可以定义为.header__nav--active。.当我们.看到header__nav--active class名的时候,我们可以知道,他的结构是什么样的,当前是什么样的状态。

什么时候应该用 BEM 格式。

并不是每个地方都适合使用 BEM 命名方式。当需要明确关联性的模块关系时,应当使用 BEM 格式。封装复用性组件的时候,也需要使用BEM格式,比如 element-ui 组件库 css 命名就是使用的BEM格式。

一些公共的单独的样式,就没有必要使用 BEM 格式:

比如:

.hide {
    display: none !important;
}

只是用来隐藏元素的,就没有必要使用了BEM格式了。

BEM是css命名规范的一种,还有OOCSS和SMAcss命名规范。不论是哪一种,都有它的优点和缺点。没有好坏之说,选择适合的自己的就好。没有使用BEM命名格式的前端小伙伴可以去了解一下。

代码规范很重要,每种语言都有自己的规范,建议开发团队,都制定对应的代码规范,大家都去执行,不仅有助于自身的成长,还可以促进团队合作,降低维护成本。

相关文章

  • 简单好用的CSS命名规范

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

  • web前端经验分享

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

  • CSS代码规范

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

  • CSS BEM 命名简介

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

  • CSS命名——BEM

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

  • BEM(CSS命名规范)

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

  • CSS命名规范—BEM

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

  • css命名规范-BEM

    什么是BEM BEM其实是块(block)、元素(element)、修饰符(modifier)的缩写,利用不同的区...

  • CSS命名规范 BEM

    通过阅读Element-UI源码来分析学习BEM规范, 使用BEM规范语义化更加鲜明,阅读更容易理解,意思是 块,...

  • CSS BEM命名规范

    简介 BEM 的意思就是块(block)、元素(element)、修饰符(modifier),是由 Yandex ...

网友评论

    本文标题:css BEM 命名规范

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