前言

CSS 命名规范对于开发人员来说并不陌生,其中 BEM(Block Element Modifier)是一种广泛应用的命名方法。BEM 由 Yandex 团队提出,旨在帮助开发者创建结构一致的 CSS 模块。BEM 将类名分为块(Block)、元素(Element)和修饰符(Modifier)三个部分。

块(Block):一个块是视觉上或者语义上的一个整体,它是一个具体且唯一的一个元素。例如,页面上的一个弹窗或是一个搜索框。

元素(Element):一般认为是块的组成部分,元素通常使用它的父级块名称作为前缀。例如,弹窗的标题、关闭按钮和确认按钮。

修饰符(Modifier):修饰符表示一个具体元素的特定状态。例如,关闭按钮在鼠标没放上去和放上去的时候,呈现的两种状态。

以 Bootstrap 的弹窗组件为例,我们可以看到类名是如何遵循 BEM 规则的:鼠标放上去和没放上去的状态是有区别的。通过上面的示例可以看出,块与元素是通过两个下划线(__)连接的,而元素和修饰符之间是通过两个短横线(--)连接的。

当然,如果你之前没有接触过 BEM,可以通过阅读相关文档并在实际项目中尝试使用来加深理解。另外,现在网上已经有很多关于 BEM 的文章,耐心寻找优秀的教程。

今天的文章将介绍两种较少人了解的 CSS 方法论:SUIT CSS 和 SMACSS。

1. SUIT CSS

官方文档:SUIT CSS 命名约定(https://github.com/suitcss/suit/blob/master/doc/naming-conventions.md)

SUIT CSS 是一种基于组件开发的 CSS 的方法论,它将类名分为两种类型:工具类和组件类。

工具类:CSS 中有很多固定工具类,如左右浮动、文本截断、垂直居中等。工具类的作用是帮助程序减少重复代码,并提供一致的实现。

命名规则:u-[sm-|md-|lg-]<工具类名>。工具类使用 u- 打头,后面接类名(类名使用驼峰的方式命名),中间可以加上 sm、md、lg 这种响应式的规则。

举个例子:

```html

```

2. SMACSS

SMACSS(Scalable Micro App Architecture for CSS)是一种用于构建可扩展移动端 Web 应用的 CSS 框架中的层级结构和样式重构的方法论。它是根据设计模式(如 MVC)将 UI 架构分解为一系列独立的组件,然后对这些组件进行样式重构的一种方法。

👉看看我的博客

爱折腾的前端工程师,欢迎关注我的公众号「更了不起的前端」