Skip to content

前端 CSS 规范

缩进

使用两个空格缩进

分号

每个属性声明后面都要加分号。

css
.element {
    width: 20px;
    height: 20px;
    background-color: red;
}

空格

以下几种情况不需要空格:

  • 属性名后
  • 多个规则的分隔符','前
  • !important '!'后
  • 属性值中'('后 和 ')'前
  • 行末不要有多余的空格

以下几种情况需要空格:

  • 属性值前
  • 选择器'>', '+', '~'前后
  • '{'前
  • !important '!'前
  • @else 前后
  • 属性值中的','后
  • 注释'/'后和'/'前
css
/* good */
.element > .dialog{
    color: red !important;
    background-color: rgba(0, 0, 0, 0.5);
}

换行

以下几种情况不需要换行:

  • '{'前

以下几种情况需要换行:

  • '{'后和'}'前
  • 每个属性独占一行
  • 多个规则的分隔符','后
css
/* not good */
.element
{color: red; background-color: black;}

/* good */
.element {
    color: red;
    background-color: black;
}

/* not good */
.element, .dialog {
    ...
}

/* good */
.element,
.dialog {
    ...
}

注释

注释统一用'/* */'(scss中也不要用'//'),具体参照右边的写法;

缩进与下一行代码保持一致;

可位于一个代码行的末尾,与代码间隔一个空格。

css
/* Modal header */
.modal-header {
   color: red; /* color red */
}

引号

最外层统一使用双引号;

url的内容要用引号;

属性选择器中的属性值需要引号。

css
.element:after {
    content: "";
    background-image: url("logo.png");
}

li[data-type="single"] {
    ...
}

命名

  1. 不使用 id 选择器
  2. 使用有意义的名词命名
  3. 单词全部小写,名词超过 1 个时,使用-分隔符

属性声明顺序

原则:整体到局部,外部到内部,重要属性优先

css
.element {
    display: block;
    float: left;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 100;
    margin: 0 100px;
    padding: 50px; // padding习惯写到margin后面
    width: 100px;
    height: 100px;
    border: 1px solid #e5e5e5; border-radius: 3px;
    font: normal 13px "Helvetica Neue", sans-serif;
    color: #333;
    text-align: center;
    line-height: 1.5;
    background-color: #f5f5f5;
    opacity: 1;
}

颜色

颜色16进制用小写字母;

css
/* good */
.element {
    color: #abcdef;
    background-color: #012;
}

杂项

  • 不允许有空的规则
  • 小数点前面添加0 (Prettier会默认添加) rgba(0, 0, 0, 0.5)
  • 去掉数字中不必要的小数点和末尾的0
  • 属性值0后面不要添加单位 padding: 0 10px;
  • less或scss, 嵌套不要超过4层

工具

使用 prettier 格式化工具约束.

参考连接

百度 CSS 规范指南

腾讯 CSS 规范指南

Google CSS 规范指南