BEM”流行起来的原因是什么?

作者:朔州淘贝游戏开发公司 阅读:63 次 发布时间:2023-07-12 20:54:43

摘要:随着前端技术的迅速发展,越来越多的人开始关注如何构建可维护、可扩展、可重用的 CSS 代码,BEM 架构由此得以流行起来。BEM 是一种 CSS 命名约定,它将页面中的每个元素看作单独的组件,为每个组件设置相应的类名,从而使 CSS 的可读性和可维护性得到大大提升。那么,本文将详细探讨 BE...

随着前端技术的迅速发展,越来越多的人开始关注如何构建可维护、可扩展、可重用的 CSS 代码,BEM 架构由此得以流行起来。BEM 是一种 CSS 命名约定,它将页面中的每个元素看作单独的组件,为每个组件设置相应的类名,从而使 CSS 的可读性和可维护性得到大大提升。

BEM”流行起来的原因是什么?

那么,本文将详细探讨 BEM 架构所体现的价值以及一些在实践中需要注意的细节。

一、BEM 架构的特点

BEM 架构是一种模块化的 CSS 架构,其主要特点包括以下 3 个方面:

1、块、元素、修饰符(Block, Element, Modifier,简称为 BEM)的命名约定,使得样式表的结构更清晰,更易于理解。

2、强调组件化,将每个元素看作单独的组件,使得样式表更具可重用性。

3、通过标准化的命名约定,使得多人协作开发更加简单和高效。

BEM 架构的最大特点是其命名约定,这个约定是基于块(block)、元素(element)、修饰符(modifier)的命名结构。块是一个单独的功能部分,如一个导航菜单、一个按钮、一个表格等;元素是组成一个块的一部分,如一个按钮组成一个导航菜单;修饰符为元素或块添加额外的状态,如一个被激活的导航菜单等。

举个例子,我们可以看看下面的 HTML 代码。其中,.menu 是一个块,.menu__item 是其元素,.menu__item--active 是该元素的一种状态。

```

```

看到这里,你可能已经明白了 BEM 的主要思路。通过这样规范化的命名约定,使得我们能够非常清晰地看到页面结构中的各个组成部分。

二、BEM 架构的价值

那么,BEM 架构有哪些价值呢?以下是我们在实践过程中感受到的价值:

1、可读性更高

BEM 是基于规范化的命名约定来构建样式表,这种约定使得样式表更加易读,因为开发者能够很容易地理解页面中各个组件的用途。

举个例子,对于以下代码:

```

.menu ul li{

/* CSS rules for menu items */

}

```

使用 BEM 后,我们可以改写成这样:

```

.menu__item{

/* CSS rules for menu items */

}

```

更清晰地看到这是一个 .menu 的组件中的一个 .menu__item 的元素,这在以后代码的维护和开发中会节省很多时间和精力。

2、可维护性更高

BEM 模块化的设计在增加 CSS 代码可读性的同时,也使得 CSS 代码更加可维护。由于块、元素、修饰符具有独立性,开发者对其中某一部分进行修改并不会影响其他部分。

例如,如果我们要更改 .menu__item--active 修饰符的样式,我们只需要在 CSS 中找到该修饰符,进行修改即可。这样,我们可以避免在定义一个元素或者一个修饰符时未考虑到其他元素或修饰符,从而出现样式冲突的情况。

3、可重用性更高

BEM 模块化的设计使得我们能够更加容易地重用已经定义好的模块。在其他模块中使用同样的块、元素、修饰符,只需要在 HTML 中添加相应的类名即可使用。

举个例子,在“首页”和“产品”两个 .menu__item 元素中,它们都具有相同的样式,我们只需添加类似于.menu__item 的样式就可以遍及所有相同的元素。

4、易于协同开发

在多人协同开发的过程中,由于开发者具有不同的经验和风格,往往会在样式中出现命名不一的情况。而 BEM 模块化的设计使得开发者在开发过程中具有一致的命名约定,多人协同开发就更容易协同了。

如此一来,在使用 git 等版本控制工具处理多人协同开发的代码时,可能会更加有自信。

三、BEM 架构的注意事项

了解了 BEM 的特点和价值,接下来,我们需要注意的是使用 BEM 架构所需要遵守的一些约定。

1、不要造轮子

很多 web 组件库中都包含了各种样式和组件,使用它们可以避免我们重新编写已有的样式。所以,如果你在使用某个组件库,并且在其中找到了一个可以满足需求的组件,那么不要重新造轮子,尽可能地使用它。

2、BEM 架构只负责解决命名问题

BEM 的主要目的是为项目提供一致的命名约定,以解决 CSS 命名难以控制的问题。它不处理其他方面的设计决策,例如样式的组织、层次和继承等。

3、不要在一个元素中使用太多的修饰符

每个块和元素应该只在必要时使用修饰符,而不是在某些情况下大量使用修饰符。修饰符是为块和元素提供附加特性的,如果过多使用修饰符,会导致样式表过于复杂,从而影响性能。

4、语义化的命名

在考虑如何命名 BEM 组件时,我们应该尽量保证命名的语义化,不要只为了满足 BEM 的命名约定而强行命名。比较好的方式是,按照组件的功能和用途来命名,而不是按照组件的样式来命名。

结语

通过本文的讲解,我们可以更好了解到 BEM 架构的特点和价值,以及在实践中需要遵循的一些约定。尽管它并不是万能的,但是在大多数情况下都能为开发者带来效率提升和更好的代码质量。

  • 原标题:BEM”流行起来的原因是什么?

  • 本文链接:https://qipaikaifa1.com/jsbk/16287.html

  • 本文由朔州淘贝游戏开发公司小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与淘贝科技联系删除。
  • 微信二维码

    CTAPP999

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员


    点击这里给我发消息电话客服专员


    在线咨询

    免费通话


    24h咨询☎️:189-2934-0276


    🔺🔺 棋牌游戏开发24H咨询电话 🔺🔺

    免费通话
    返回顶部