CSS使用BEM命名规范实践

下面是“CSS使用BEM命名规范实践”的完整攻略:

什么是BEM命名规范

BEM是块(Block)、元素(Element)、修饰符(Modifier)的缩写。它是一种命名约定,用于在CSS中为代码块、元素和修饰符创建独特的名称。这种命名方式有助于清晰和一致地组织CSS代码。

  • 块(Block):一般独立的功能模块,对应HTML中的一个DOM节点,如.nav、.header、.footer等。
  • 元素(Element):块的子元素,对应HTML中嵌套在块中的DOM节点,用双下划线(__)进行连接,如.nav__item、.header__logo、.footer__nav等。
  • 修饰符(Modifier):用于描述块或元素的不同状态或特殊情况,用单下划线(_)进行连接,如.nav--active、.header__logo--small、.footer__nav--large等。

BEM命名规范的优点

使用BEM命名规范有以下优点:

  • 可读性更好:由于命名规范明确,可以更清晰和快速地了解CSS代码的含义。
  • 组织结构更清晰:BEM命名规范有助于规范化CSS代码,使代码更加易于维护。
  • 减少选择器的数量:BEM命名规范通过类的嵌套来实现,减少使用选择器的情况,从而提高了页面性能。

BEM命名规范的实践

创建块(Block)

首先,为要创建的模块定义一个块(Block),它是整个模块的外壳。我们以一个卡片样式为例:

<div class="card">
  <div class="card__header">
    <h3 class="card__title">Sample Card</h3>
  </div>
  <div class="card__content">
    <p class="card__text">This is a sample card.</p>
  </div>
  <div class="card__footer">
    <button class="card__button">Click me</button>
  </div>
</div>

在CSS中,定义.card样式:

.card {
  display: flex;
  flex-direction: column;
  border: 1px solid #ccc;
  border-radius: 5px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}

创建元素(Element)

接下来,在块中创建元素。在这个例子中,我们需要分别创建.card__header、 .card__content、 .card__text、.card__footer和.card__button,它们根据它们在卡片模块中的位置:

.card__header {
  padding: 1em;
  background-color: #f3f3f3;
}
.card__title {
  margin: 0;
  font-size: 1.2em;
}
.card__content {
  padding: 1em;
}
.card__text {
  margin: 0;
  font-size: 1em;
}
.card__footer {
  padding: 1em;
  background-color: #f3f3f3;
  border-top: 1px solid #ccc;
}
.card__button {
  font-size: 1em;
  padding: 0.5em 1em;
  background-color: #09f;
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

创建修饰符(Modifier)

接下来,我们可以用修饰符改变BEM元素的某些属性。在这个例子中,我们可以使用.card--large修饰符来增加卡片的大小:

<div class="card card--large">
  // ...
</div>

在CSS中,我们可以定义.card--large修饰符的样式:

.card--large {
  width: 500px;
  height: 300px;
}

另外,我们可以使用.card__button--disabled修饰符来禁用按钮:

<button class="card__button card__button--disabled">Click me</button>

在CSS中,我们可以定义.card__button--disabled的样式:

.card__button--disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

总结

BEM命名规范是一种有助于规范化CSS代码的命名约定,并且可以提高代码的可维护性和可读性。在开发过程中,遵循BEM命名规范可以使CSS代码更加清晰,易于维护。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS使用BEM命名规范实践 - Python技术站

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

相关文章

  • javascript操作excel生成报表全攻略

    JavaScript 操作 Excel 生成报表全攻略 在开发前端应用中,我们经常需要生成一些报表来展示数据。而 Excel 作为办公领域中最流行的数据处理软件,自然成为了生成报表的热门工具之一。在本篇攻略中,我们将讲解如何使用 JavaScript 操作 Excel,生成报表并导出到本地,完全摆脱后端的帮助。 前置条件 在开始前,请确保你已经了解并具备以下…

    css 2023年6月10日
    00
  • CSS实现章节添加自增序号的方法

    以下是实现CSS添加章节自增序号的攻略: 方案概述 在CSS中,我们可以使用counter来实现自增序号。counter是CSS中的一个计数器,通过使用counter()函数引用它来自动生成序号。 定义计数器 我们需要先定义一个计数器,然后使用content属性和counter()函数将计数器的值插入到需要添加序号的元素中。计数器可以通过counter-re…

    css 2023年6月10日
    00
  • Vue.js 2.0 和 React、Augular等其他前端框架大比拼

    Vue.js 2.0 和 React、Angular等其他前端框架大比拼 前端框架是前端开发人员最为重要的工具之一,其中Vue.js 2.0、React和Angular是目前较为流行的三种框架。本文将分别从以下几个方面对这三种框架进行比较和分析。 性能 从性能方面来看,Vue.js 2.0 可以说是三个框架中最快的,因为Vue.js的Virtual DOM(…

    css 2023年6月9日
    00
  • css高度塌陷问题的解决方案

    CSS高度塌陷问题的解决方案 CSS高度塌陷(又称为Margin Collapse)是指在垂直方向上相邻的两个块级元素的外边距(margin)会发生重叠,导致两个元素的总外边距高度比单个元素的外边距高度要小。 出现高度塌陷问题的常见场景包括: 父元素包含多个子元素,其中至少一个子元素存在margin-top和父元素的边界重叠; 相邻的兄弟元素中,上一个元素的…

    css 2023年6月10日
    00
  • 详解CSS3.0(Cascading Style Sheet) 层叠级联样式表

    详解CSS3.0(Cascading Style Sheet) 层叠级联样式表 CSS3.0 是一种层叠样式表语言,用来描述 HTML 和 XML(包括各自的语言规范)这类文档的表现。它为HTML文档提供了控制页面样式的方式,使得文档作者和用户能够将样式信息与文档内容分离,提高了文档的可维护性和可重用性。 选择器 选择器指定了一个或多个元素应用样式规则。CS…

    css 2023年6月9日
    00
  • 鼠标悬停图片产生边框的效果实现

    关于“鼠标悬停图片产生边框的效果实现”,以下是我的攻略: 实现方法 实现“鼠标悬停图片产生边框的效果”的方法有多种。下面我们介绍两种常用方法: 方法一:使用CSS的:hover伪类 在HTML中,为图片添加一个class,然后使用CSS中:hover伪类为该class添加一个边框样式即可。具体代码如下: .img-border:hover { border:…

    css 2023年6月10日
    00
  • 浅谈Emergence.js 检测元素可见性的 js 插件

    下面我来为您详细讲解“浅谈Emergence.js 检测元素可见性的 js 插件”的完整攻略。 什么是 Emergence.js? Emergence.js 是一个用于检测元素可见性的 JavaScript 插件。利用 Emergence.js,我们可以在元素进入或离开视口时执行自定义回调函数。它主要应用于以下场景: 图片的懒加载 AJAX 请求的惰性加载 …

    css 2023年6月10日
    00
  • 只要1K 纯JS脚本送你一朵3D红色玫瑰

    下面是“只要1K 纯JS脚本送你一朵3D红色玫瑰”的完整攻略。 简介 这是一篇介绍如何使用纯JS脚本实现一个3D红色玫瑰特效的攻略。这个特效非常小巧,只有1K的脚本大小,而且在支持CSS3的浏览器中使用硬件加速,可以达到不错的性能表现。该特效适用于制作一些简单而独特的网页元素,如背景、按钮等等。 步骤 以下是实现该特效的具体步骤: 第一步:引用JS库 在网页…

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