您现在的位置是:网站首页> 编程资料编程资料
详解css BEM书写规范 CSS使用BEM命名规范实践CSS样式书写顺序和命名规范及注意事项值得收藏的CSS命名规范(规则)常用的CSS命名规则 好的 CSS 命名规范可以节约 Debug 时间css 命名:BEM, scoped css, css modules 与 css-in-js详解CSS规范BEM CSS和OOCSS的示例代码详解从QQtabBar看css命名规范BEM的详细介绍
2021-09-04
835人已围观
简介 BEM的意思就是块(block)、元素(element)、修饰符(modifier),是由Yandex团队提出的一种前端命名方法论。本文主要介绍了详解css BEM书写规范,非常具有实用价值,需要的朋友可以参考下
BEM是基于组件的web开发方法。其思想是将用户界面分隔为独立的块,从而使开发复杂的UI界面变得更简单和快,且不需要粘贴复制便可复用现有代码。BEM由Block、Element、Modifier组成。选择器里用以下连接符扩展他们的关系:
- `__:双下划线用来连接块和块的子元素
- ` :仅作为连字符使用,连接块或元素或修饰符的多个单词(也可以直接写成驼峰式)
- --:双中划线用来连接块或元素的状态(也可使用‘_’单下划线表示)
示例:
block-name_modifier-name block-name__element-name--modifier-name block-name_modifier-name--modifier-value block-name__element-name--modifier-name--modifier-value
基本概念
Block(块)
代码片段可能被复用且这段代码不依赖其他组件即可用Block。块可以互相嵌套,可以嵌套任意多层。
特点:
- 块的名称用于描述它的目的。如 menu、button
- 块不能影响所在环境。这意味着不能为块设置margin或position
- 只能使用class命名选择器,而不能使用标签或id选择器
- 不依赖于页面内其他块或元素
Element(元素)
Element是Block的一部分,没有独立存在的意义。任何一个Element语义上是和Block绑定的。
特点:
- 与块使用'__'连接。 如: block__item
- 用于描述它的目的。如:item、text
- 元素可以彼此嵌套,可以嵌套任意多层
- 元素总是属于块的一部分。所以类似于block__item1__item2的命名是不合法的
Modifier(修饰符)
Modifier是Block或Element上的标记。使用它们来改变样式,行为或状态。与块或元素连接符为'--'。
应用
相对另外的Blocks定位Block
最好的方式是混合使用block和element。解决block上不能设置margin、position。
例:
... .page__header { padding: 20px; } .page__footer { padding: 50px; }
Block内定位Elements
通过额外创建Block的子Element来定位嵌套。
例:
.page__inner { margin-right: auto; margin-left: auto; width: 960px; }...
关于命名
选择器的命名必须完整且精确地描述它代表的BEM实体。
例:
.button {} .button__icon {} .button__text {} .button_theme_islands {} 我们可直接指导我们在处理一个块元素。在html使用如:
而下面的css就很难让我们做出相同的判断:
.button {} .icon {} .text {} .theme_islands {} 在我的git项目miniui中采用了BEM规范,使用sass实现了BEM。有兴趣可以查看:https://github.com/banyaner/miniui
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- css如何绘制特殊图形的方法示例
- CSS 同级元素浮动分析小结纯css3绘制的卡通皮卡丘随着气球漂浮动画特效源码css 如何清除浮动的示例代码浅谈CSS浮动的特性CSS3 清除浮动的方法示例深入理解css布局之定位与浮动CSS清除浮动float的三种方法小结浅谈css中浮动和清除浮动带来的影响轻松搞懂CSS浮动与清除浮动图文详解
- 使用css实现圆形波浪效果图 纯CSS实现波浪移动效果的示例纯css3制作鼠标悬停波浪形状弹性下拉菜单特效源码css3实现逼真的波浪起伏动画特效源码CSS3实现的波浪闪动文字动画特效源码纯css3实现的音阶波浪loading加载动画特效源码CSS3实现文字波浪线效果示例代码纯css3实现的文字波浪动画特效源码纯CSS3实现波浪形菜单效果源码纯CSS3实现3D波浪形动画有波浪起伏的效果
- CSS Sticky Footer实现代码CSS Sticky Footer 几种实现方式CSS实现Sticky Footer的示例代码详解CSS经典布局之Sticky footer布局详解Sticky Footer 绝对底部的两种套路 css sticky footer经典布局的实现
- css实现两栏固定中间自适应的方法css实现元素居中的N种方法div水平布局两边对齐的三种实现方法waterfall瀑布流布局+动态渲染的实现页面中有间隔的方格布局如何完美实现方法css实现六种自适应两栏布局方式使用flex布局轻松实现页面布局的示例代码使用Flex布局实现头部固定内容区域滚动的方法详解flex布局下图片变形的解决方法详解flex布局与position:absolute/fixed的冲突问题Flex布局实现div内部子元素垂直居中的示例
- 关于css中line-height(行高)设置无效的问题的解决方法深入理解CSS行高line-height与文本垂直居中的原理全面了解css行高line-height的用法CSS中的line-height行高属性学习教程CSS中的line-height行高属性的使用技巧小结CSS中行高line-height属性的一些使用技巧css属性行高line-height的用法详解CSS行高line-height的个人理解CSS line-height行高上下居中垂直居中样式属性
- css制作tips提示框,气泡框,制作三角形的实现纯CSS实现气泡对话框尖角处理方案CSS3制作气泡对话框的实例教程可自定义箭头样式的CSS3气泡提示框纯CSS实现聊天框小尖角、气泡效果纯CSS实现箭头、气泡让提示功能具有三角形图标html5 css3 动态气泡按钮实例演示
- css实现一个元素高度固定宽度按比例显示效果CSS控制div宽度最大宽度/高度和最小宽度/高度的方法不固定宽度和高度的情况下CSS调整div居中的方法总结CSS设置HTML元素的高度与宽度的各种情况总结兼容IE6的网页最小最大宽度和最小最大高度css写法CSS的最大高度、最小高度及宽度在IE6下没有效果问题CSS控制页面最大最小宽度和高度可兼容IE6版本的实现方法CSS min-height IE6、IE7、FF下DIV自适应高度CSS IE6奇数宽度或高度的bug
- 详解如何自定义CSS滚动条的样式纯css修改浏览器scrollbar滚动条样式示例CSS 设置滚动条样式的实例代码详解css3自定义滚动条样式写法CSS3自定义滚动条样式的示例代码纯CSS改变webkit内核浏览器的滚动条样式CSS样式设置div滚动条示例代码
- 纯css修改浏览器scrollbar滚动条样式示例CSS 设置滚动条样式的实例代码详解css3自定义滚动条样式写法CSS3自定义滚动条样式的示例代码纯CSS改变webkit内核浏览器的滚动条样式CSS样式设置div滚动条示例代码详解如何自定义CSS滚动条的样式
