语法
- 缩进统一(tab键或4个空格)
- 每个属性声明末尾都要加分号
- 对于属性值或颜色参数,省略小于 1 的小数前面的 0 (例如,.5代替 0.5;-.5px 代替 -0.5px)
- 为选择器中的属性添加双引号,例如,input[type="text"]。只有在某些情况下是可选的,但是,为了代码的一致性,建议都加上双引号。
- 避免为 0 值指定单位,例如,用 margin: 0; 代替 margin: 0px;。
- 不要使用 @import引用css
- 尽量少用'*'选择器
- 选择器不要超过4层(在scss中如果超过4层应该考虑用嵌套的方式来写)
- 不要在一个文件里出现两个相同的规则
- 不允许有空的规则
- 无前缀的标准属性应该写在有前缀的属性后面
- 不要在一个文件里出现两个相同的规则;
- 用 border: 0; 代替 border: none;
- 给每一个表格和表单加上一个唯一的、结构标记id
空格
以下几种情况需要空格:
- 每个声明块的左花括号前添加一个空格
- 每条声明语句的 : 后应该插入一个空格
- 选择器'>', '+', '~'前后
- !important '!'前
- @else 前后
- 对于以逗号分隔的属性值,每个逗号后面都应该插入一个空格(例如,box-shadow)
- 注释'/'后和'/'前
以下几种情况不需要空格: - 属性名后
- 多个规则的分隔符','前
- important '!'后
- 属性值中'('后和')'前
- 行末不要有多余的空格
- 不要在 rgb()、rgba()、hsl()、hsla() 或 rect() 值的内部的逗号后面插入空格。这样利于从多个属性值(既加逗号也加空格)中区分多个颜色值(只加逗号,不加空格)
空行
- 文件最后保留一个空行
- 为了获得更准确的错误报告,每条声明都应该独占一行
- 为选择器分组时,将单独的选择器单独放在一行
- 声明块的右花括号应当单独成行
- 属性之间需要适当的空行
换行
以下几种情况不需要换行:
- '{'前
以下几种情况需要换行: - '{'后和'}'前
- 每个属性独占一行
- 多个规则的分隔符','后
属性声明顺序
- 定位浮动
- 盒模型
- 边框圆角
- 文字
- visual
颜色
- 颜色16进制用小写字母
- 颜色16进制尽量用简写
媒体查询(Media query)的位置
- 将媒体查询放在尽可能相关规则的附近。不要将他们打包放在一个单一样式文件中或者放在文档底部。如果你把他们分开了,将来只会被大家遗忘。下面给出一个典型的实例。
带前缀的属性
- 当使用特定厂商的带有前缀的属性时,通过缩进的方式,让每个属性的值在垂直方向对齐,这样便于多行编辑。
单行规则声明
- 对于只包含一条声明的样式,为了易读性和便于快速编辑,建议将语句放在同一行。对于带有多条声明的样式,还是应当将声明分为多行。
简写形式的属性声明
- 在需要显示地设置所有值的情况下,应当尽量限制使用简写形式的属性声明。
- 常见的属性简写包括:
- font
- background
- transition
- animation
注释
- 注释统一用'/* */'
* /*
* Modal header
* Modal header
/*
*文件用途说明
*作者姓名
*联系方式
*制作日期
*/
class 命名
- class 名称中只能出现小写字符和破折号(dashe)(不是下划线,也不是驼峰命名法)。破折号应当用于相关 class 的命名(类似于命名空间)(例如,.btn 和 .btn-danger)。
- 避免过度任意的简写。.btn 代表 button,但是 .s 不能表达任何意思。
- class 名称应当尽可能短,并且意义明确。
- 使用有意义的名称。使用有组织的或目的明确的名称,不要使用表现形式(presentational)的名称。
- 基于最近的父 class 或基本(base) class 作为新 class 的前缀。
- 使用 .js-* class 来标识行为(与样式相对),并且不要将这些 class 包含到 CSS 文件中。
选择器
- 对于通用元素使用 class ,这样利于渲染性能的优化。
- 对于经常出现的组件,避免使用属性选择器(例如,[class^="..."])。浏览器的性能会受到这些因素的影响。
- 选择器要尽可能短,并且尽量限制组成选择器的元素个数,建议不要超过 3 。
- 只有在必要的时候才将 class 限制在最近的父元素内(也就是后代选择器)(例如,不使用带前缀的 class 时 -- 前缀类似于命名空间)。
代码组织
- 以组件为单位组织代码段。
- 制定一致的注释规范。
- 使用一致的空白符将代码分隔成块,这样利于扫描较大的文档。
- 如果使用了多个 CSS 文件,将其按照组件而非页面的形式分拆,因为页面会被重组,而组件只会被移动。
链接
- 链接的样式请严格按照如下顺序添加: a:link -> a:visited -> a:hover -> a:active
网友评论