网站小百科前端布局样式 BEM命名对照表

在现代网页开发中,良好的代码组织和清晰的命名规则是提高开发效率、确保代码可读性和可维护性的关键,BEM(Block Element Modifier)是一种流行的CSS命名约定,它通过将选择器分为三部分:block(块)、element(元素)和modifier(修饰符),来帮助开发者更好地组织和理解CSS代码,本文旨在介绍BEM命名法的基本概念,并提供一个详尽的BEM命名对照表,以供网站小百科前端开发人员参考使用。

BEM命名法简介

BEM命名法的核心思想是将CSS的选择器分解为三个部分:blockelementmodifier,这种命名方式有助于区分不同的选择器类型,并使得代码更加清晰易读。.my-custom-class就是一个典型的BEM命名示例,其中my-custom-classblockcustom-classelement,而则作为modifier

BEM命名对照表

以下是一份详细的BEM命名对照表,涵盖了常见的CSS选择器类型及其对应的BEM命名规范:

基本选择器

选择器类型 BEM命名 说明
.class-name .className 类名
#id-name #idName ID选择器
.element-name .elementClassName 直接选择元素类名
.element-name > .content .elementClassName > .contentClassName 选择器嵌套

伪类选择器

选择器类型 BEM命名 说明
hover hoverClassName 鼠标悬停时应用的类名
active activeClassName 当前活动状态时应用的类名
focus focusClassName 获取焦点时应用的类名
disabled disabledClassName 禁用状态下应用的类名

伪元素选择器

选择器类型 BEM命名 说明
:before :beforeClassName 前置文本或元素
:after :afterClassName 后置文本或元素
:content :contentClassName 内容区块

属性选择器

选择器类型 BEM命名 说明
[attr="value"] [attr="value"]ClassName 带有特定属性值的元素
[attr="value"][class] [attr="value"][class="className"] 带有特定属性值且具有特定类名的元素
[attr="value"][class][data-attribute] [attr="value"][class][data-attribute="dataValue"] 带有特定属性值且具有特定类名且具有特定数据属性的元素

其他选择器

选择器类型 BEM命名 说明
~ClassName 相邻元素选择器
~> ~>ClassName 相邻兄弟元素选择器
~*ClassName 所有相邻同级元素选择器
~+ClassName 所有相邻同级元素选择器,包括子级元素
~-ClassName 所有相邻同级元素选择器,不包括子级元素
~nth-child(n) ~nth-child(n, ClassName) n号孩子元素选择器
~nth-last-child(n) ~nth-last-child(n, ClassName) n号最后孩子元素选择器
~nth-of-type(n) ~nth-of-type(n, ClassName) n号同种类型的元素选择器
~not(ClassName) ~not(ClassName) 不包含某个类名的元素选择器
~has(ClassName) ~has(ClassName) 包含某个类名的元素选择器
~has(ClassName)[attribute] ~has(ClassName)[attribute="value"] 包含某个类名且具有特定属性值的元素选择器

通过上述的BEM命名对照表,网站小百科前端开发人员可以更清晰地理解和运用BEM命名法,从而编写出结构清晰、易于维护的CSS代码。

 
maolai
  • 本文由 maolai 发表于 2024年6月29日 19:57:09
  • 转载请务必保留本文链接:/603.html

发表评论