CSS命名规范之BEM

BEM是一种由Yandex提出的CSS命名方法论,旨在创建可复用的前端组件。BEM强调Block、Element和Modifier的概念,以提高代码的结构化和可维护性。与其他CSS规范如OOCSS、SMACSS和SUITCSS相比,BEM提供了一种更易于理解和使用的命名体系,有助于减少样式继承和提升渲染效率。要使用BEM,遵循Block、Element和Modifier的命名规则,确保代码的独立性和灵活性。
摘要由CSDN通过智能技术生成

What is BEM?

BEM:Block(块) Element(元素) Modfier(修饰符),是由Yandex团队提出的一种前端命名方法论。根据这个规范,能够创建出可以复用的前端组件和前端代码。(BEM是一个高可用、强大的、简单易用的命名规范)

编程方法论中常见的一个就是面向对象编程(OOP),这种方法用在了许多的语言中。BEM和OOP类似的,是用代码和一系列模式来描述实际情况的方法,只考虑程序实体而无所谓使用什么编程语言。(摘自https://www.w3cplus.com/css/bem-definitions.html

Why Choose BEM?

除了BEM规范以外还有其它的规范例如:

  • OOCSS:用CSS“对象”分隔容器和内容
  • SMACSS:风格指南为您的CSS编写CSS规则的五个类别
  • SUITCSS:结构化类名和有意义的连字符
  • 原子:将样式分解为原子或不可分割的部分

上面的方法都可以应用在项目中,无论使用哪一种方法,都将受益于更多结构化CSS和UI的优势。一些风格不那么严格和更灵活,而另一些则更容易理解和适应团队。

使用的原因:它比其他方法(即SMACSS)更容易混淆,但仍为我们提供了我们想要的良好体系结构(即OOCSS)以及可识别的术语。 (摘自https://www.jianshu.com/p/339fdb93e155

Features

  • 简单易用:只需要采用BEM命名规范就可以
  • 单元性:独立的块和CSS选择器,可以使得你的代码可以重用和单元化
  • 灵活性:使用BEM之后,方法和工具可以按照自己喜欢的方式进行配置(XML 、JSON)

按组件划分类名,减少层次关系,实现扁平化、语义化,通过唯一的类名来避免不必要的样式继承,提高渲染效率。

How To Use?

BEM命名规范参见BEM官网:http://getbem.com/naming/

部分摘自https://segmentfault.com/a/1190000012705634

Block

命名规范:block-name

示例:

.block{
   }
.container{
   }
.blog-header{
   }
/*上面都是block的命名方式,其中第三个是block名字有多个单词组成使用-隔开*/

Block是逻辑和功能相对独立的单元,类似于组件。每个block包含自己的行为(js)、结构(html模板)、表现(css)。block的独立性有利于代码的复用,有利于项目的管理。

(1)block名描述block功能,不能包含其状态,block可以嵌套、复用

  • 描述功能就是描述这个block是干什么的?例如menu、carboard等等
  • 不能包含其状态就是不能描述它的表现,例如一个button,那么不能描述它是什么样子red,blue
<!--正确的写法-->
<div class="error"></div>
<!--错误的写法,block包含了状态-->
<div class="red-text"></div>

嵌套的block

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值