企业开发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日

相关文章

  • Python pyecharts数据可视化实例详解

    Python pyecharts数据可视化实例详解 一、背景介绍 随着数据科学和人工智能的快速发展,数据可视化成为数据分析和决策制定的关键。Python是一个强大的编程语言,有很多数据可视化的工具和库可以使用,而pyecharts是其中的一款非常流行的工具。本文将介绍pyecharts的基本用法和两个实例说明。 二、pyecharts基本用法 1.安装pye…

    css 2023年6月9日
    00
  • 详解常用css样式(布局)

    以下是关于“详解常用CSS样式(布局)”的完整攻略,包含两个示例说明。 常用CSS样式(布局) CSS是一种用于网页设计的样式表语言,它可以控制网页的布局、颜色、字体等方面。以下是一些常用的CSS样式(布局): 1. 盒模型 盒模型是CSS布局中的基本概念,它将每个HTML元素看作一个矩形盒子,包括内容区域、内边距、边框和外边距。可以使用CSS的box-si…

    css 2023年5月18日
    00
  • javascript关于运动的各种问题经典总结

    关于”javascript关于运动的各种问题经典总结”,我可以为你提供一份完整攻略,以下是具体内容: 一、运动的基本概念 运动是指物体在空间中沿着某条路径移动的过程,而在Web前端开发中,我们通常使用JavaScript来实现运动效果。 二、运动效果实现的方式 在Web前端开发中,我们有多种方式可以实现运动效果,其中包括: 1. 通过修改CSS样式来实现 这…

    css 2023年6月10日
    00
  • PHP+jQuery 注册模块的改进(三):更新到Smarty3.1

    我来为您详细讲解如何将“PHP+jQuery 注册模块”升级到Smarty3.1的过程。 首先,我们需要了解Smarty是什么。Smarty是一个模板引擎,它可以让我们将PHP代码和HTML模板分离,这样可以更好地管理我们的代码。Smarty有许多版本,目前最新的版本是3.1。 接下来,我们来讲一下升级的具体步骤。 下载Smarty3.1 首先,我们需要到S…

    css 2023年6月9日
    00
  • 纯css写一个大太阳的天气图标的方法示例

    下面是“纯css写一个大太阳的天气图标的方法示例”的完整攻略: 一、准备工作 在开始之前,你需要先准备好以下内容: 一个文本编辑器,如VSCode或Sublime Text。 一个支持CSS3的浏览器,如Google Chrome、Firefox等。 一个基本的HTML文件,用于容纳并展示该图标。 二、开始制作 1. 设置基本样式 在HTML文件中,我们首先…

    css 2023年6月10日
    00
  • CSS属性探秘系列(二):overflow及相关属性text-overflow

    下面是详细讲解”CSS属性探秘系列(二):overflow及相关属性text-overflow”的完整攻略。 概述 在设计和开发网页时,经常会遇到显示内容超出容器范围的情况,这时候就需要用到overflow属性。overflow属性决定了如何处理超出容器宽度和高度的内容。 overflow属性常用的值有四种: visible:默认值,超出部分不会被剪裁,会呈…

    css 2023年6月10日
    00
  • Vue中jsx不完全应用指南小结

    Vue中jsx不完全应用指南小结 什么是JSX? JSX是JavaScript的一种语法扩展,允许我们在JavaScript中编写类似HTML的代码,使得开发者可以使用一种更直观的方式去创建UI。类似于下面的代码: const element = <h1>Hello, world!</h1>; 在Vue的官方文档中提到,Vue可以使用…

    css 2023年6月9日
    00
  • jQuery中animate的几种用法与注意事项

    当使用jQuery来实现动画效果时,最常用的方法之一就是animate()函数。下面是jQuery中animate的几种用法与注意事项,希望能够帮助大家更好地使用animate()函数。 基础用法 animate()函数是jQuery中用来执行动画效果的函数,其基本用法如下: $(selector).animate(styles, duration, eas…

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