首页 web前端 css教程 CSS BEM 命名约定:它是什么、为什么重要以及如何使用它?

CSS BEM 命名约定:它是什么、为什么重要以及如何使用它?

Sep 18, 2024 pm 12:21 PM

CSS BEM Naming Convention: What It Is, Why It Matters, and How to Use It?

编写干净且有组织的 CSS 很重要,尤其是对于大型项目。构建 CSS 的最佳方法之一是使用 BEM 命名约定。在本文中,我们将解释 BEM 是什么、为什么它很重要、它的优点和缺点,并通过两个示例向您展示如何使用它。

什么是边界元法?

BEM 代表元素修饰符。它是一个用于编写 CSS 类名的命名系统,使您的代码更易于理解和维护。 BEM 的主要目标是帮助开发人员编写可重用、模块化和可扩展的 CSS。

1。块: 本身有意义的独立组件(例如按钮或表单)。
2.元素: 块的一部分,其本身没有意义并且依赖于块(例如,按钮图标)。
3.修饰符: 块或元素的不同版本(例如,具有不同颜色的按钮)。

.block {}
.block__element {}
.block--modifier {}
登录后复制

为什么使用边界元法?

使用 BEM 可以帮助您避免混乱和令人困惑的 CSS。它带来了几个好处:

  • 一致性:所有类名称都遵循相同的模式,使您的代码更可预测且更易于理解。
  • 可重用性:块和元素可以在项目的不同部分重用。
  • 易于维护:其他开发人员可以轻松阅读和修改您的代码。
  • 避免冲突: BEM 帮助您防止不同组件之间的 CSS 冲突。

如何使用边界元法:示例

示例 1:一个简单的按钮

让我们从一个基本的按钮块开始,看看 BEM 是如何工作的。

HTML:

<button class="button button--primary">
  Submit
</button>
登录后复制

CSS:

.button {
  padding: 10px 20px;
  background-color: #333;
  color: white;
  border: none;
}

.button--primary {
  background-color: blue;
}
登录后复制

说明:

  • Button 是一个块,代表主按钮样式。
  • Button--primary 是一个修饰符,将蓝色背景应用于此特定按钮版本。

示例 2:卡片组件

现在让我们创建一个带有标题和描述(元素)以及小尺寸版本(修饰符)的卡片块。

HTML:

<div class="card card--small">
  <h2 class="card__title">Title</h2>
  <p class="card__description">This is a description.</p>
</div>
登录后复制

CSS:

.card {
  padding: 20px;
  border: 1px solid #ddd;
  background-color: #f9f9f9;
}

.card__title {
  font-size: 18px;
  margin-bottom: 10px;
}

.card__description {
  font-size: 14px;
  color: #666;
}

.card--small {
  padding: 10px;
}
登录后复制

说明:

  • card 是代表卡片组件的块。
  • card__title 和 card__description 是元素,卡片的特定部分。
  • card--small 是一个修饰符,减少较小版本卡片的填充。

BEM 的优点和缺点

优点:

1. 有组织且一致:帮助保持 CSS 干净且结构良好。
2. 避免 CSS 冲突: 降低一个组件的样式影响另一个组件的风险。
3. 可重用性:块和元素可以在项目中的多个位置使用。
4. 易于维护:即使您的项目不断增长,也可以更轻松地更新和管理 CSS。

缺点:

1. 长类名:BEM 类名可能会很长,一开始可能会让人觉得不知所措。
2. 学习曲线:需要一些时间来适应 BEM 结构,特别是如果您是 CSS 新手。

为什么 BEM 很重要?

BEM 是一种流行的 CSS 方法,因为它提倡干净且可扩展的代码。在大型项目中,CSS 很快就会变得难以管理。使用 BEM,每个类名称都是唯一的且具有描述性,这使得更容易理解每​​个类的用途。它还可以防止风格冲突等问题,并使开发人员之间的协作更加顺畅。

如果你想要一种一致且模块化的 CSS 编写方式,BEM 是一个绝佳的选择。可能需要一些时间来学习,但从长远来看,它将节省你的时间并让你的 CSS更易于维护。

结论

BEM 命名约定是保持 CSS 有序且可扩展的好方法。它有助于避免冲突,使代码更易于维护,并促进可重用组件。尽管由于类名较长且学习曲线较长,一开始可能看起来很有挑战性,但好处远远大于缺点。如果您希望编写更简洁的 CSS 并改善项目中的协作,请尝试 BEM!

关注我了解更多更新!

我希望您发现这篇文章有助于理解 CSS BEM 命名约定。如果您想了解更多此类文章、技巧和 Web 开发见解的最新动态,请务必关注我。如果您有任何问题或建议,请随时与我们联系。我很想听听你的消息!

以上是CSS BEM 命名约定:它是什么、为什么重要以及如何使用它?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1666
14
CakePHP 教程
1426
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1255
24
静态表单提供商的比较 静态表单提供商的比较 Apr 16, 2025 am 11:20 AM

让我们尝试在这里造成一个术语:“静态表单提供商”。你带上html

使Sass更快的概念证明 使Sass更快的概念证明 Apr 16, 2025 am 10:38 AM

在一个新项目开始时,Sass汇编发生在眼睛的眨眼中。感觉很棒,尤其是当它与browsersync配对时,它重新加载

每周平台新闻:HTML加载属性,主要的ARIA规格以及从iframe转移到Shadow dom 每周平台新闻:HTML加载属性,主要的ARIA规格以及从iframe转移到Shadow dom Apr 17, 2025 am 10:55 AM

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

带有HTML对话框元素的一些动手 带有HTML对话框元素的一些动手 Apr 16, 2025 am 11:33 AM

这是我第一次查看HTML元素。我已经意识到了一段时间,但是尚未将其旋转。它很酷,

纸张形式 纸张形式 Apr 16, 2025 am 11:24 AM

购买或建造是技术的经典辩论。自己构建东西可能会感觉更便宜,因为您的信用卡账单上没有订单项,但是

'订阅播客”链接应在哪里? '订阅播客”链接应在哪里? Apr 16, 2025 pm 12:04 PM

有一段时间,iTunes是播客中的大狗,因此,如果您将“订阅播客”链接到喜欢:

它全部都在头上:管理带有React头盔的React Power Site的文档头 它全部都在头上:管理带有React头盔的React Power Site的文档头 Apr 15, 2025 am 11:01 AM

文档负责人可能不是网站上最迷人的部分,但是其中所处的内容对于您的网站的成功也一样重要

托管您自己的非JavaScript分析的选项 托管您自己的非JavaScript分析的选项 Apr 15, 2025 am 11:09 AM

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)

See all articles