可维护css,编写可维护的CSS

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

7b57b42d1d6b85057cb063b0d5a92127.png

在参与规模庞大、历时漫长且参与人数众多的项目时,所有开发者遵守如下规则极为重要:

保持 CSS 便于维护

保持代码清晰易懂

保持代码的可拓展性

为了实现这一目标,我们要采用诸多方法。

本文第一部分将探讨语法、格式以及分析 CSS 结构;第二部分将围绕方法论、思维框架以及编写与规划 CSS 的态度。

CSS 文档分析

无论编写什么文档,我们都应当尽力维持统一的风格,包括统一的注释、统一的语法与统一的命名规范。

总则

尽量将行宽控制在 80 字节以下。渐变(gradient)相关的语法以及注释中的 URL 等可以算作例外,毕竟这部分我们也无能为力。

我倾向于用 4 个空格而非 Tab 缩进,并且将声明拆分成多行。

单一文件与多文件

有人喜欢在一份文件文件中编写所有的内容,而我在迁移至 Sass 之后开始将样式拆分成多个小文件。这都是很好的做法。无论你选择哪种,下文的规则都将适用,而且如果你遵守这些规则的话你也不会遇到什么问题。这两种写法的区别仅仅在于目录以及区块标题。

目录

在 CSS 的开头,我会写一份目录,例如:

12345678 /*------------------------------------*\ $CONTENTS\*------------------------------------*//** * CONTENTS............You’re reading it! * RESET...............Set our reset defaults * FONT-FACE...........Import brand font files */

这份目录可以告诉其他开发者这个文件中具体含有哪些内容。这份目录中的每一项都与其对应的区块标题相同。

如果你在维护一份单文件 CSS,对应的区块将也在同一文件中。如果你是在编写一组小文件,那么目录中的每一项应当对应相应的 @include 语句。

区块标题

目录应当对应区块的标题。请看如下示例:

123 /*------------------------------------*\ $RESET\*------------------------------------*/

区块标题前缀 $ 可以让我们使用 [Cmd|Ctrl]+F 命令查找标题名的同时将搜索范围限制在区块标题中。

如果你在维护一份大文件,那么在区块之间空 5 行,如下:

12345678910 /*------------------------------------*\ $RESET\*------------------------------------*/[Ourresetstyles] /*------------------------------------*\ $FONT-FACE\*------------------------------------*/

在大文件中快速翻动时这些大块的空档有助于区分区块。

如果你在维护多份、以 @include 连接的 CSS 的话,在每份文件头加上标题即可,不必这样空行。

代码顺序

尽量按照特定顺序编写规则,这将确保你充分发挥 CSS 缩写中第一个 C 的意义:cascade,层叠。

一份规划良好的 CSS 应当按照如下排列:

Reset 万物之根源

元素类型 没有 class 的 h1、ul 等

对象以及抽象内容 最一般、最基础的设计模式

子元素 由对象延伸出来的所有拓展及其子元素

修补 针对异常状态

如此一来,当你依次编写 CSS 时,每个区块都可以自动继承在它之前区块的属性。这样就可以减少代码相互抵消的部分,减少某些特殊的问题,组成更理想的 CSS 结构。

关于这方面的更多信息,强烈推荐 Jonathan Snook 的 SMACSS。

CSS 规则集分析

[选择器]{ [属性]:[值]; []}

编写 CSS 样式时,我习惯遵守这些规则:

class 名称以连字符(-)连接,除了下文提到的 BEM 命名法;

缩进 4 空格;

声明拆分成多行;

声明以相关性顺序排列,而非字母顺序;

有前缀的声明适当缩进,从而对齐其值;

缩进样式从而反映 DOM;

保留最后一条声明结尾的分号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值