BEM规范:css命名规范

BEM 规范及实战快速生成 BEM(Block, Element, Modifier)是一种前端编码规范,用于命名 HTML 和 CSS 中的类和选择器。它旨在提供一种一致的方式来组织和命名代码,使其易于理解、扩展和维护。块(Block):块是一个独立的可重用组件,它代表一个完整的实体。它是整个 BEM 结构中最高层级的部分,应该有一个唯一的类名。示例:.yk-button、.yk-navbar元素(Element):元素是块的组成部分,不能独立存在。它们依赖于块的上下文,并且有属于块的类名作为前缀。 阅读详情

目录

 

什么是BEM

BEM的实例

eg1

eg2

BEM与SCSS


什么是BEM

BEM其实是块(block)、元素(element)、修饰符(modifier)的缩写,利用不同的区块,功能以及样式来给元素命名。这三个部分使用__与--连接(这里用两个而不是一个是为了留下用于块儿的命名)。命名约定的模式如下:

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

block代表一个组,而element代表组里面的成员

BEM的实例

eg1

//普通命名

.nav{}
.item{}
.blue{}

//BEM命名

.nav{}
.nav__item{}
.nav--blue{}
.nav--item__hand{}

eg2

//常规

<form class="site-search  full">
  <input type="text" class="field">
  <input type="Submit" value ="Search" class="button">
</form>

//BEM

<form class="site-search  site-search--full">
  <input type="text" class="site-search__field">
  <input type="Submit" value ="Search" class="site-search__button">
</form>

BEM与SCSS

现在的开发很多时候都会用到SCSS,那么如果使用SCSS的嵌套写BEM规范呢,在SCSS中可以使用@at-root:

.block {
  @at-root #{&}__element {
  }
  @at-root #{&}--modifier {
  }
}

/*生成的css*/
.block {
}
.block__element {
}
.block--modifier {
}

 

BEM命名规范:CSS架构之道 样式污染(全局作用域)特异性战争(!important滥用)难以复用的组件协作时的命名冲突。 阅读详情

相关推荐

人大金仓的‘影子表’sys_user:搞懂Schema优先级,告别字段不存在的报错

本文深入解析人大金仓数据库中‘影子表’sys_user的Schema优先级问题,帮助开发者解决字段不存在的报错。通过分析Schema搜索路径机制,提供四种解决方案,包括连接时指定Schema、动态调整搜索路径、永久修改用户设置和使用完全限定表名,确保查询准确无误。

weixin_30329623的博客 596

BEM规范

BEM规范BEM是什么?BEM包含的内容Block特点例子Block使用指南嵌套例子Element特点例子Element使用指南嵌套例子嵌套例子从属性例子从属性例子可选性例子我应该创建Block还是Element?创建Block创建ElementModifier特点Modifier的分类1.布尔类型例子1.Key--Value类型例子Modifier使用指南不能脱离Block或者Element独立使用例子Mix特点例子 BEM是什么? BEM (Block, Element, Modifier)是一个基于组

lixiaolong240035的博客 3406

AWS入门实践-如何在AWS云上创建一个内外网隔离的生产环境

在 AWS 上建立一个内外网分离的生产环境,可以减少应用服务的暴露面,有效的保证你的应用服务器的安全。通常我们会将web应用放在外网的子网内,数据库服务器等放在内网的子网。我们将按照下图来部署动手实践环境,实现在public subnet的EC2虚拟机可以直接通过互联网可以访问,在Private subnet的EC2虚拟机不能通过互联网直接访问,但是却可以在内部来访问互联网安装应用等等。

weixin_39108752的博客 2994

【CSS】BEM 命名规范

最近团队要考虑代码风格统一Bem 是块(block)、元素(element)、修饰符(modifier)的简写,由 Yandex 团队提出的一种前端 CSS 命名方法论。- 中划线 :仅作为连字符使用,表示某个块或者某个子元素的多单词之间的连接记号。__ 双下划线:双下划线用来连接块和块的子元素_ 单下划线:单下划线用来描述一个块或者块的子元素的一种状态BEM 是一个简单又非常有用的命名约定。让你的前端代码更容易阅读和理解,更容易协作,更容易控制,更加健壮和明确,而且更加严密。

STATICHIT静砸的博客 4207

sentinel滑动时间窗口算法学习

滑动时间窗口 先不说sentinel的算法实现,先说什么是滑动时间窗口, 我们在进行限流的时候,比如通过QPS进行限流,那假如我们以秒为单位,举个例子: 我设置了限流规则,qps是10 如果不使用滑动窗口算法,在统计qps的时候,就有可能会有问题,比如: 在0 - 500ms中的请求数是0,但是在500ms - 1000 ms的请求数是10;在1000ms - 1500ms 之间又进来了5个请求,此时只判断了1000ms - 2000 ms之间的请求数 因为没有把1S进行拆分多个窗口,所以在1000ms之后

小小少年的博客 3980

大模型微调框架之TRL

近年来,大语言模型(LLMs)的快速发展推动了下游应用的繁荣,但如何高效地对这些模型进行对齐和微调,依然是研究与应用的热点。Hugging Face 开源的 TRL(Transformer Reinforcement Learning) 框架,提供了基于强化学习的语言模型训练方法,并支持 SFT(监督微调)、PPO(近端策略优化)、DPO(直接偏好优化)等多种方式,是目前对齐和微调 LLM 的重要工具。

和大家一起涨芝士 904

『精』CSS 小技巧之BEM规范

BEM风格规范指的是 Block、Element、Modifier 这三者的简称,这个规范将 CSS 拆分成块、元素、修饰符,根本作用是帮助开发者快速理解HTML与 CSS 之间的关系。那么通过使用 BEM 能获得到什么好处呢?如果我们想制作一个组件的新样式,比如改个字体/背景色,可以很容易地看到有哪些样式项已经存在,只需要新增一个修饰符即可,甚至可能意识到一开始就不需要编写任何样式,有一个预先存在的修饰符可以满足我们的需求。

贤哲XianZhe的博客 2751

5G时代必知:LDPC与Polar码实战解析(附MATLAB仿真代码)

本文深入解析5G时代核心信道编码技术LDPC码与Polar码的原理差异及性能表现,通过MATLAB仿真代码展示其在实际通信系统中的应用。LDPC码适用于大数据块高速传输,而Polar码在小数据块低时延场景表现优异,帮助开发者优化5G系统设计。

sugar的博客 642

BEM命名规范

BEM(块、元素、修饰符)是CSS命名规范,通过双下划线(__)连接块与元素,双短横线(--)表示修饰符。作者建议扩展为BEMS,增加"State"状态类(如is-disabled)。BEM优势在于提高代码可读性和避免样式冲突,特别是在Vue父子组件中能防止样式继承问题。文中通过电商商品列表案例,展示了父组件(App.vue)容器和子组件(Child.vue)卡片如何应用BEM命名,确保样式隔离和组件化开发。实践表明BEM能有效解决作用域冲突问题。

zheshiyangyang的博客 1358

激光三角测量法:斜射与直射式技术的原理与应用解析

本文深入解析激光三角测量法中斜射式与直射式技术的原理、应用及对比。斜射式适用于高精度小范围测量,尤其擅长处理反光表面;直射式则适合大范围位移检测,结构更简单。文章详细介绍了两种技术的光路分析、数学建模、应用场景及选型建议,并探讨了系统校准与误差分析方法,为工业检测领域提供实用参考。

weixin_29280219的博客 414

C#上位机+YOLOv8实战:摄像头/视频流实时目标检测(工业级优化+完整可运行源码)

纯C#实现,无Python依赖,适配工业工控机部署;工业级优化:解决帧率、内存、鲁棒性三大核心问题;代码完整可复用,支持摄像头/视频流/RTSP多源检测;避坑指南覆盖开发中90%的常见问题,降低落地成本。相较于传统方案,该方案兼顾实时性与易用性,成本仅为商用视觉库的1/10,可快速落地到工业质检、安防、物流等场景。后续可拓展方向包括:自定义数据集训练、GPU加速推理、工业通信(PLC/串口)对接等。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 733

掌握Boilerform的BEM命名规范:写出可维护的表单CSS代码

在前端开发中,表单样式的一致性和可维护性一直是开发者面临的挑战。Boilerform作为一款专注于表单开发的HTML和CSS基础模板,通过独特的命名规范解决了这一痛点。本文将深入解析Boilerform如何应用BEM(Block-Element-Modifier)命名规范,帮助你写出更清晰、更易维护的表单CSS代码。 ## BEM命名规范简介:为何它是表单开发的理想选择 BEM(Block-E

gitblog_00504的博客 818

Codex 100个真实案例 - 用AI画业务流程图Mermaid(产品经理都馋哭了)

还在用 Visio、ProcessOn 拖拖拽拽画流程图?改一个箭头方向就要调半天?本案例教你用 Codex 自然语言描述业务流程,AI 自动转为 Mermaid 代码,一秒生成专业流程图、时序图、甘特图、饼图!还能搭建在线渲染工具、批量导出 PNG/SVG、集成到文档系统。产品经理、架构师、项目经理都能用,从此画图再也不是体力活!

yueyeguzhuo的专栏 350

css样式命名规范:BEM命名规范

前言: 在小型项目中,css样式命名只要遵循基本规则,即可灵活合理运用。但在中大型项目中,如果没有统一的命名规范和代码风格,页面一多,将会很难维护和理解,甚至出现重复命名导致样式覆盖、代码污染的问题。为此,基于bem命名规范,提供了这样一套css命名规则。 说明: bem命名规范掘金原地址:https://juejin.im/post/5b925e616fb9a05cdd2ce70d 要点...

cindy647的博客 1048

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

BEM:css命名规范

(Block-Element-Modifier),块、元素、修饰符,是一种CSS命名规范,旨在前端开发中创建可重用组件和代码共享的方法,使样式易于扩展,易于维护,易于理解规范:1、页面上独立的组件,具有明确的语义和功能。每个块都有自己的命名空间(如element的命名空间为el,),单词之间以连字符(-)分隔。例如:element的input组件el-input2、组成块的不同元素,不能独立存在,依赖于块的上下文,元素名称以块名称为前缀,用双下划线分隔(__)。

qq_34498806的博客 1038

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

CSS命名规范进化:从BEM到SUITCSS的工程实践

CSS命名规范是前端工程化的重要基础,其核心原理是通过结构化命名解决样式冲突和维护难题。BEM方法论通过Block-Element-Modifier的三层结构实现样式隔离,而SUITCSS在此基础上引入驼峰命名和工具类体系,更适配现代组件化开发。良好的命名规范能显著提升代码可维护性和团队协作效率,特别是在React、Vue等框架项目中。随着CSS-in-JS和原子化CSS的兴起,命名规范正朝着与设计系统深度整合的方向演进,BEM和SUITCSS仍是当前企业级项目的主流选择。

weixin_30444111的博客 243

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Material Dashboard Lite中的BEM命名规范:写出更清晰的CSS代码

Material Dashboard Lite作为一款免费的Material Design风格仪表板模板,其CSS代码采用了BEM(Block-Element-Modifier)命名规范,帮助开发者构建模块化、可维护的样式系统。本文将详细解析BEM命名规范在该项目中的应用实践,让你轻松掌握写出清晰CSS代码的终极技巧。 ## 什么是BEM命名规范? BEM是一种前端CSS命名方法论,通过将样式

gitblog_00942的博客 628

CSS样式的格式命名,CSS命名规范:BEM

什么是 BEM 命名规范Bem 是块(block)、元素(element)、修饰符(modifier)的简写块: 组件元素:块的子节点修饰符:改变某个块的外观的标志,不同状态或不同版本Yandex中文:燕基科斯 提出的一种前端 CSS 命名方法论BEM的关键是,可以获得更多的描述和更加清晰的结构,从其名字可以知道某个标记的含义。于是,通过查看 HTML 代码中的class 属性,就能知道元素之间...

weixin_30096321的博客 581

css命名规范: BEM 的命名法

整理自:前端早读课【第1183期】这些 CSS 命名规范,将省下你大把调试时间 试图解决 3 类问题: 仅从名字就能知道一个 CSS 选择器具体做什么 从名字能大致清楚一个选择器可以在哪里使用 从 CSS 类的名称可以看出它们之间的联系 不知你是否见过这样的类名: .nav--secondary { ... } .nav__header { ... } ...

weixin_30730053的博客 165

10个你必须知道的CSS命名规范:BEM、OOCSS、SMACSS实战解析

想要写出可维护、可扩展的CSS代码?掌握CSS命名规范是关键!本文将为你详细解析BEM、OOCSS、SMACSS等10个最重要的CSS命名规范,帮助你构建更加健壮的前端项目。💪 CSS命名规范在前端开发中扮演着至关重要的角色,它们不仅能让你的代码更加清晰,还能显著提升团队协作效率。让我们开始这段CSS命名规范的探索之旅吧! ## 🔥 BEM命名规范:块、元素、修饰符 BEM(Block

gitblog_00021的博客 1159

前端新人必读:BEM命名规范让你告别CSS混乱(附实战技巧)

left: 0;right: 0;bottom: 0;opacity: 0;opacity: 1;鼠标悬停时,整个组件的范围会显示出来,方便调试。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 652

深入探讨CSS命名规范:BEM、OOCSS、SMACSS和Atomic CSS

1. 结构与外观分离:把元素的基本结构样式和外观样式分开定义,比如定义一个.button类设置按钮的基本结构,如display 、width 、height 等,再通过其他类设置按钮的颜色、背景等外观。4. 状态(State):表示元素的不同状态,如.is - active 、.is - hidden 、.is - loading ,通过状态类来改变元素在不同状态下的样式。1. 基础(Base):定义基本HTML元素的样式,如body 、h1 - h6 、p 等,这些样式通常具有通用性。

weixin_50678983的博客 903

前端新人必看:用BEM命名规范写出清晰易维护的CSS代码

先放一句狠话:BEM 不是“写得更长”,而是“想得更清”。Block(块):独立实体,本身就有意义。比如cardmenu。Element(元素):块的组成部分,离开块就没意义。比如menu__item。Modifier(修饰符):块或元素的不同状态或外观。比如。“块”是老板,“元素”是小弟,“修饰符”是换装。-- Element:标题 --> < h3 class = " hot-topic__title " > #今天写代码了吗# </ h3 > <!

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1007

Foundation Sites与BEM方法论:CSS命名规范的最佳实践

在当今前端开发领域,**Foundation Sites**作为一款强大的响应式前端框架,与**BEM方法论**的结合为开发者提供了一套完整的CSS命名规范解决方案。这种组合不仅能提升代码的可维护性,还能显著改善团队协作效率。🎯 ## 为什么CSS命名规范如此重要? 在现代web开发中,CSS命名冲突和样式污染是常见问题。当项目规模扩大时,混乱的命名会导致维护成本急剧增加。Foundatio

gitblog_01119的博客 365

BEM、OOCSS、SMACSS、ITCSS、AMCSS、SUITCSS:CSS命名规范简介

在前端开发中,不同组件/模块的class类名都是公用的,假设两个组件中起了同样的类名,那么就会出现样式污染。既然问题出在名字,那么让不同组件的类名不同就能解决问题了。因此,社区中出现了一些CSS命名规范,希望使用规范将CSS的冲突污染减少,同时通过命名起到和HTML标签关系更紧密,封装公共CSS样式,以及一些其它作用。

Coding home - 漂流瓶jz 575
上一篇: JavaScript学习笔记
下一篇: CSS斑马条纹背景
sunshinefcc
博客等级 码龄10年 17粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值