- 基本格式
- 1. CSS文件头部声明
@charset - 2. 统一使用小写。
- 3. 保持空格
- 4. 每个声明前保留一级缩进
- 5. 右大括号保持与该规则集第一个字符对齐
- 6. 多个选择器和声明都独占一行
- 7. 每个规则集之间保留一个空行
- 8. 统一使用双引号
"" - 9. 每增加一级花括号嵌套,则增加一级缩进
- 1. CSS文件头部声明
基本格式
1. CSS文件头部声明 @charset
为了避免 HTML 和 CSS 文件编码不同时造成中文解析乱码,造成的不必要的麻烦,CSS 文件头部统一加上文件对应的编码,例如文件编码为 UTF-8 时:
@charset "UTF-8";/* 开始书写样式 */
需要注意的是:
@charset前面不能有任何字符。@charset必须出现在 CSS 文件的最开始。
注:在使用
SASS时如果不指定@charset也可能造成乱码。
2. 统一使用小写。
- 字体名称以及特殊的 CSS 属性/值(
translateX等)不要求强制小写 - 颜色值如果是16进制,推荐小写,更加容易辨识。
- 如果是关键字色值,推荐使用更加直观的颜色关键字。
不推荐的写法:
.Foo{BACKGROUND: #CCC;color: currentColor;border-color: #F00; /* 红色 */transform: translateX(20px);}
推荐的写法:
.foo{background: #ccc;color: currentColor;border-color: red;transform: translateX(20px);}
3. 保持空格
留白是一种艺术,合理的留白(空格)可以更好的阅读代码
- 规则集的左大括号前保留一个空格
属性值前增加个空格(使用 Emmet 会自动生成这个空格)
.selector {width: 200px;font-size: 22px;}
逗号后面保留一个空格。
.foo {color: rgba(0, 0, 0, .5);transition: color .3s, width .5s cubic-bezier(.6, 0, .2, 1);transform: matrix(0, 1, 1, 1, 10, 10);}@keyframes flash {0%, 50%, 100% {opacity: 1;}25%, 75% {opacity: 0;}}
属性值中的
/分隔符前后保留一个空格。.foo {font: 12px / 1.5 sans-serif;background: center / cover;grid-area: 1 / 1 / 4 / 2;grid-column: 2 / 3;grid-template: 100px 1fr / 50px fit-content(100px);}
calc()函数中的+, -, *, /运算符前后保留一个空格。错误的语法
.foo {width: calc(100%/3-2*1em+2*1px)margin: calc(1rem -2px) calc(1rem- 1px);}
正确的语法
.foo {width: calc(100%/3 - 2*1em + 2*1px)margin: calc(1rem - 2px) calc(1rem - 1px);}
注意:
*, /虽然不用加前后空格,但是为了统一,建议都加空格。推荐的写法:
.foo {width: calc(100% / 3 - 2 * 1em + 2 * 1px)margin: calc(1rem - 2px) calc(1rem - 1px);}
Media Queries 中的
>, <, >=, <=标识符前后保持一个空格。@media (width >= 500px) and (width <= 1200px) {}@custom-media --only-medium-screen (width >= 500px) and (width <= 1200px);
其他未来 CSS 新增的语法以此类推,保留合适的空格。
4. 每个声明前保留一级缩进
不推荐的写法:
h3 {font-weight: bold;}
推荐的写法:
h3 {font-weight: bold;}
5. 右大括号保持与该规则集第一个字符对齐
不推荐的写法:
h3{font-weight: bold;}
推荐的写法:
h3 {font-weight: bold;}
6. 多个选择器和声明都独占一行
不推荐的写法:
h1, h2, h3 {font-weight: normal; line-height: 1.5;}
推荐的写法:
h1,h2,h3 {font-weight: normal;line-height: 1.5;}
7. 每个规则集之间保留一个空行
不推荐的写法:
.selector1 {display: block;width: 100px;}.selector2 {padding: 10px;margin: 10px auto;}
推荐的写法:
.selector1 {display: block;width: 100px;}.selector2 {padding: 10px;margin: 10px auto;}
8. 统一使用双引号""
不推荐的写法:
.foo:before {content: '';}input[type='checkbox'] {position: absolute;}
推荐的写法:
.foo:before {content: "";}input[type="checkbox"] {position: absolute;}
9. 每增加一级花括号嵌套,则增加一级缩进
例如:
@supports (animation: 1s foo both) {@keyframes foo {50% {transform: scale(1.2);}80% {transform: scale(0);}}}
