CSS BEM 命名规范简介(推荐)

CSS BEM 命名规范简介(推荐)

什么是 BEM

BEM 是 Block(块)、Element(元素)、Modifier(修饰符)的缩写,是一种前端 CSS 命名规范。

在 BEM 的规范下,每个页面元素都是通过一个 Block (块)来表示的,Block 可以包含多个 Element (元素),而 Element 又可以被修饰符 Modifier (修饰符)所修饰。

BEM 的优点

  1. BEM 可以让代码更加明确。在采用 BEM 时,每个元素的作用都变得清晰。这样可以减少对样式选择器的解释和理解。
  2. BEM 可以避免类名冲突。BEM 的标识符中存在模块名称、元素名称以及修饰符名称,因此可以有效的防止类名冲突的问题。
  3. BEM 可以便于维护和扩展。使用 BEM 可以轻松地更新或增加元素,而不必考虑十分细致的样式选择器命名方法。

如何实现 BEM

Block

Block 是页面中的一个独立的部分,在 HTML 中一个 Block 可以是一篇文章、一个导航栏或一个搜索框。在 CSS 中 Block 通常被表示为一个类名。例如,下面这里表示一个提示框:

<div class="alert"></div>
.alert {}

Element

Element 表示 Block 的组成部分。大多数的元素都是 Block 的 Element。但是,它们不是独立的 Block ,因而没有单独的 CSS 类名。例如,.alert 内的标题 h1 是 alert 的 Element:

<div class="alert">
  <h1 class="alert__title"></h1>
</div>
.alert__title {}

Modifier

Modifier 是用于更改 Block 或 Element 外观的标志。例如,修改警告条颜色的样式:

<div class="alert alert--green">
  <h1 class="alert__title">提示标题</h1>
</div>
.alert--green {
  background-color: green;
}

可以看出,Modifier 的标识符在原有的 Block 或 Element 标识符基础上,增加了两个短横线。

示例1

<div class="search">
  <input class="search__input" type="text" placeholder="请输入搜索关键词" />
  <button class="search__button">搜索</button>
</div>
.search {}

.search__input {}

.search__button {}

我们可以看到 search 充当的 Block 的角色。里面包含两个元素(input 和 button)。它们的圆点元素分别为 search__input 和 search__button

示例2

<ul class="sidebar">
  <li class="sidebar__item">
    <a class="sidebar__item__title" href="">产品分类</a>
    <ul class="sidebar__item__list">
      <li class="sidebar__item__list__subitem">
        <a href="">手机</a>
      </li>
      <li class="sidebar__item__list__subitem">
        <a href="">笔记本电脑</a>
      </li>
    </ul>
  </li>
</ul>
.sidebar {}

.sidebar__item {}

.sidebar__item__title {}

.sidebar__item__list {}

.sidebar__item__list__subitem {}

我们可以看到sidebar 充当的 Block 的角色,里面包含一个元素(sidebar__item)。它又包含我们在网站中常见的“分类导航栏”- 商品分类(sidebar__item__title)和二级分类子项列表(sidebar__item__list),二级分类中的内容为字典列表项(sidebar__item__list__subitem)。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS BEM 命名规范简介(推荐) - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • CSS中常用的单位

    CSS中常用的单位 1. 像素(px) 像素是CSS中最常用的单位之一,一般用于定义页面元素的大小和边框大小。它的值是固定的,不受屏幕或窗口大小的影响,所以通常被用来定义固定大小的元素,例如导航栏、按钮等。 示例1:定义一个宽度为300像素的容器 .container { width: 300px; } 2. 百分比(%) 百分比是相对于父元素的大小而言,它…

    css 2023年6月9日
    00
  • html5 更新图片颜色示例代码

    针对HTML5更新图片颜色示例代码的完整攻略,我会详细讲解该过程,以便您更好地了解。 HTML5更新图片颜色示例代码的攻略 步骤1:创建HTML文件 首先,您需要打开一个新的html文件,并设置正确的doctype以确保浏览器正确解释您的代码。在这个HTML文件中,您需要包括一个画布(canvas),其中您将绘制您想要更新颜色的图片。例如,以下是一个包括画布…

    css 2023年6月9日
    00
  • Webpack如何引入bootstrap的方法

    下面是Webpack如何引入bootstrap的方法的完整攻略。 步骤一:安装Bootstrap 在引入Bootstrap前,我们首先需要将它安装到我们的开发环境中。可以使用npm进行安装,在项目根目录下执行以下命令: npm install bootstrap –save-dev 这条命令会将Bootstrap安装到我们的项目根目录下的node_modu…

    css 2023年6月10日
    00
  • CSS border虚线边框属性教程

    当我们需要给HTML元素添加边框时,可以使用CSS的border属性来实现。其中,border有多个子属性,其中包括border-style用于设置边框的样式,包含三个可选值:solid,dashed和dotted。这三个属性值分别表示实线、虚线和点线的边框效果。 下面我们来详细讲解如何使用CSS的border-style来设置虚线边框。 语法格式 CSS …

    css 2023年6月10日
    00
  • CSS的position属性完全解析

    CSS的position属性完全解析 什么是position属性? position是CSS中用来设置元素定位方式的属性,它有五种取值分别是: static relative absolute fixed sticky static static是position属性的默认值,元素不受top, right, bottom, left or z-index影响…

    css 2023年6月9日
    00
  • HTML+CSS 实现顶部导航栏菜单制作

    下面我来为你详细讲解“HTML+CSS 实现顶部导航栏菜单制作”的完整攻略。 一、准备工作 在实现顶部导航栏菜单前,我们需要先准备好相关的素材和环境。 1.1 需要的素材 制作顶部导航栏菜单需要用到一些素材,具体包括:logo、背景图片、导航栏菜单文字和链接等。 在准备素材时,需要注意图片的大小和格式,要保证图片大小适当、格式正确,避免影响页面加载速度和美观…

    css 2023年6月9日
    00
  • 图解CSS中position属性的定位用法

    让我来详细讲解一下“图解CSS中position属性的定位用法”。 什么是position属性 在CSS中,position属性用于定义一个元素的定位方式。 position属性的取值有四种: static:默认值,表示元素正常的定位方式,即遵循文档流的方式进行排版; relative:相对定位,表示元素相对于自身原来的位置进行定位; absolute:绝对…

    css 2023年6月9日
    00
  • 什么是SEO SEO新手快速入门技巧

    下面我来为你详细讲解“什么是SEO SEO新手快速入门技巧”的完整攻略。 什么是SEO? SEO是Search Engine Optimization的缩写,即搜索引擎优化。SEO的目的是提高网站在搜索引擎中的排名,从而吸引更多的访问者。通俗来说,通过一系列的技术手段,让搜索引擎更好地识别你的网站,从而提高搜索排名。 SEO新手快速入门技巧 1. 关键词研究…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部