企业开发CSS命名BEM代码规范实践

企业开发CSS命名BEM代码规范实践

在企业开发中,CSS代码规范是非常重要的,它可以提高代码的可读性、可维护性和可扩展性。本攻略将详细讲解BEM命名规范的实践方法,包括基本原理、使用方法和示例说明。

1. 基本原理

BEM是一种CSS命名规范,它的全称是Block Element Modifier,即块、元素、修饰符。BEM规范的核心思想是将CSS样式分为三个部分:块、元素和修饰符。块是一个独立的组件,元素是块的组成部分,修饰符是对块或元素的修饰。

BEM规范的命名方式如下:

  • 块:使用单个单词或短语来描述组件,使用连字符(-)分隔单词,例如:header、menu、button等。
  • 元素:使用块名称作为前缀,使用双下划线(__)分隔元素名称,例如:header__logo、menu__item、button__text等。
  • 修饰符:使用块或元素名称作为前缀,使用双连字符(--)分隔修饰符名称,例如:button--primary、menu__item--active等。

2. 使用方法

使用BEM命名规范的方法如下:

  1. 定义HTML结构:定义需要使用BEM命名规范的HTML结构。
<div class="header">
  <div class="header__logo"></div>
  <nav class="menu">
    <ul class="menu__list">
      <li class="menu__item menu__item--active"></li>
      <li class="menu__item"></li>
      <li class="menu__item"></li>
    </ul>
  </nav>
  <button class="button button--primary">
    <span class="button__text"></span>
  </button>
</div>

上述代码中,定义了一个包含多个块和元素的HTML结构。每个块和元素都使用了BEM命名规范。

  1. 定义CSS样式:定义CSS样式,实现BEM命名规范。
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 60px;
  background-color: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.header__logo {
  width: 100px;
  height: 40px;
  background-image: url(logo.png);
  background-size: contain;
  background-repeat: no-repeat;
}

.menu {
  display: flex;
  justify-content: center;
  align-items: center;
}

.menu__list {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.menu__item {
  margin: 0 10px;
  cursor: pointer;
}

.menu__item--active {
  color: #f00;
}

.button {
  display: inline-block;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  color: #fff;
  background-color: #f00;
  cursor: pointer;
}

.button--primary {
  background-color: #00f;
}

.button__text {
  display: inline-block;
  margin: 0 5px;
}

上述代码中,将每个块和元素的样式定义为一个独立的CSS规则,使用BEM命名规范。每个块和元素的样式都可以独立修改,而不会影响其他块和元素的样式。

3. 示例说明

3.1 示例一

下面是一个示例,演示了如何使用BEM命名规范实现一个简单的导航栏。

<!DOCTYPE html>
<html>
<head>
  <title>Example</title>
  <style>
    .header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      height: 60px;
      background-color: #fff;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
    }

    .header__logo {
      width: 100px;
      height: 40px;
      background-image: url(logo.png);
      background-size: contain;
      background-repeat: no-repeat;
    }

    .menu {
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .menu__list {
      display: flex;
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .menu__item {
      margin: 0 10px;
      cursor: pointer;
    }

    .menu__item--active {
      color: #f00;
    }
  </style>
</head>
<body>
  <div class="header">
    <div class="header__logo"></div>
    <nav class="menu">
      <ul class="menu__list">
        <li class="menu__item menu__item--active">Home</li>
        <li class="menu__item">About</li>
        <li class="menu__item">Contact</li>
      </ul>
    </nav>
  </div>
</body>
</html>

上述代码中,使用BEM命名规范实现了一个简单的导航栏。

3.2 示例二

下面是另一个示例,演示了如何使用BEM命名规范实现一个按钮组件。

<!DOCTYPE html>
<html>
<head>
  <title>Example</title>
  <style>
    .button {
      display: inline-block;
      padding: 10px 20px;
      border: none;
      border-radius: 5px;
      font-size: 16px;
      font-weight: bold;
      text-align: center;
      text-decoration: none;
      color: #fff;
      background-color: #f00;
      cursor: pointer;
    }

    .button--primary {
      background-color: #00f;
    }

    .button__text {
      display: inline-block;
      margin: 0 5px;
    }
  </style>
</head>
<body>
  <button class="button">Click me</button>
  <button class="button button--primary"><span class="button__text">Submit</span></button>
</body>
</html>

上述代码中,使用BEM命名规范实现了一个按钮组件。按钮组件可以根据需要添加修饰符,例如:primary、danger等。

总结

在企业开发中,CSS代码规范是非常重要的,它可以提高代码的可读性、可维护性和可扩展性。BEM命名规范是一种常用的CSS命名规范,它的核心思想是将CSS样式分为三个部分:块、元素、修饰符。本攻略详细讲解了BEM命名规范的实践方法,包括基本原理、使用方法和示例说明。开发者可以根据具体情况选择最适合的方法,以满足特定的设计需求。需要注意的是,使用BEM命名规范时应该考虑到兼容性和可维护性,以确保代码的可读性和可维护性。

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

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • CSS圆角边框制作指南与实例

    下面是关于“CSS圆角边框制作指南与实例”的完整攻略。 CSS圆角边框制作指南与实例 1. 基本概念 CSS圆角边框是实现常见的带圆角效果的边框样式的一种方法,常用于美化网页的边框、卡片、按钮等元素的显示效果。通过设置CSS属性border, border-radius可以轻松实现圆角边框的效果。 2. 实现方式 2.1 实现圆角边框简单示例 下面是一个简单…

    css 2023年6月9日
    00
  • css中font的简写方法(包括粗细、大小、行高、字体)

    针对这个问题,我会从四个方面进行说明: 字体粗细 字体大小 行高 字体 字体粗细 在CSS中,我们通常使用font-weight属性来设置文本的粗细。但是,这并不是font属性的简写方式,因为它仅控制文本的粗细程度。 下面是两种设置粗细的方法: /* 方法一 */ font-weight: bold; /* 方法二 */ font: bold 16px/1.…

    css 2023年6月9日
    00
  • 详解css粘性定位position:sticky问题采坑

    下面我将为您详细讲解“详解CSS粘性定位position:sticky问题采坑”的完整攻略。 什么是position:sticky position:sticky是CSS3中的一种定位方式,它的特点是在元素在滚动到一定位置时会固定在指定的位置(即sticky位置),直到滚动到另一个指定位置时才会取消固定。 它与position:fixed很相似,但又有所不同…

    css 2023年6月9日
    00
  • CSS3对图片照片进行边缘模糊处理的实现

    实现CSS3对图片照片进行边缘模糊处理可以通过以下步骤: 1. 在HTML中插入图片 首先需要在HTML文档中插入图片,可以使用img标签,例如: <img src="example.jpg" alt="example"> 2. 使用CSS3的filter属性添加模糊效果 要添加边缘模糊效果,需要使用CSS…

    css 2023年6月10日
    00
  • 原生js封装自定义滚动条

    下面我给你详细讲解“原生js封装自定义滚动条”的完整攻略。 步骤1:创建HTML结构 首先我们需要创建一个包含内容的元素和一个自定义滚动条的容器。 <div class="scroll-wrapper"> <div class="scroll-content"> <!– 包含内容的元素 …

    css 2023年6月10日
    00
  • Android开发 — UI界面之threme和style

    Android开发 — UI界面之theme和style 什么是theme和style 在Android开发中,theme和style都是用来定义UI界面样式的属性。其中,theme是一种整体的样式方案,可以在AndroidManifest.xml文件中定义,对整个应用程序生效;而style是一组UI控件封装的样式,通常保存在styles.xml文件中,可…

    css 2023年6月11日
    00
  • React的事件处理你了解吗

    React是一个流行的JavaScript框架,用于构建用户界面。React通过组件实现复杂的界面,而这些组件可以通过绑定事件来响应用户的交互。在React中,事件处理非常重要,因此对事件处理的深入了解是非常必要的。 事件处理 在React中,我们可以通过向组件添加事件处理函数来响应用户的交互。React的事件处理与HTML元素的事件处理类似,但有一些区别。…

    css 2023年6月9日
    00
  • CSS教程:理解继承属性及应用

    CSS教程:理解继承属性及应用 CSS中有一些属性是具有继承性的,这意味着当一个元素的样式发生改变时,它的子元素也会继承这些样式属性。这篇文章将会深入讲解CSS的继承属性及如何应用它们。 哪些CSS属性是有继承性的? 在CSS中,典型的有继承性的属性有: font(包括font-family,font-size,font-weight等) color tex…

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