CSS书写规范

语法类的书写规范

1.为选择器进行分组的时候,将单独的选择器单独放在一行
2.为了提高代码的易读性,在每一个声明块的左花括号添加一个空格
3.声明的右花括号单独成一行
4.每一条的声明语句的‘:’后面插入一个空格
5.为了获得更准确的错误报告,每条声明都应该独占一行。
6.所有声明语句都应当以分号结尾。
7.对于以逗号分隔的属性值,每个逗号后面都应该插入一个空格(例如,box-shadow)。
8.不要在 rgb()、rgba()、hsl()、hsla() 或 rect() 值的内部的逗号后面插入空格。这样利于从多个属性值(既加逗号也加空格)中区分多个颜色值(只加逗号,不加空格)。
9.对于属性值或颜色参数,省略小于 1 的小数前面的 0 (例如,.5 代替 0.5;-.5px 代替 -0.5px)。--这一条有待商榷
10.十六进制值应该全部小写,例如,#fff。在扫描文档时,小写字符易于分辨,因为他们的形式更易于区分。
11.* 为选择器中的属性添加双引号,例如,input[type="text"]。只有在某些情况下是可选的,但是,为了代码的一致性,建议都加上双引号。
12.避免为 0 值指定单位,例如,用 margin: 0; 代替 margin: 0px;。

/* Bad CSS */
.selector, .selector-secondary, .selector[type=text] {
  padding:15px;
  margin:0px 0px 15px;
  background-color:rgba(0, 0, 0, 0.5);
  box-shadow:0px 1px 2px #CCC,inset 0 1px 0 #FFFFFF
}
/* Good CSS */
.selector,
.selector-secondary,
.selector[type="text"] {
  padding: 15px;
  margin-bottom: 15px;
  background-color: rgba(0,0,0,.5);
  box-shadow: 0 1px 2px #ccc, inset 0 1px 0 #fff;
}

CSS的书写的顺序

1.位置属性(eg:position,top,right,Z-index,display等等)
2.大小属性(width,height,padding、margin)/盒模型
3.文字系列(font,line-height,letter-spacing等等)
4.背景(background、border)
5.其他(animation,transition)
ps:由于定位(positioning)可以从正常的文档流中移除元素,并且还能覆盖盒模型(box model)相关的样式,因此排在首位。盒模型排在第二位,因为它决定了组件的尺寸和位置。

/*正确的例子*/
.example{
  z-index :  -1;
  display: block;
  font-size: 1.5em;
  color: red;
  background-color: #fff;
}

CSS的书写规范

1.使用CSS的缩进属性
对一些属性可以进行简化的书写方式,精简的代码可以体改用户的阅读体验,但是一旦可能造成歧义,不要追求简洁而都进行缩写

/*未进行缩写的CSS*/
.errorExample{
    border-top-style: none;
    font-family: serif;
    font-size: 100%;
    line-height: 1.6;
    padding-bottom: 2em;
    padding-left: 1em;
    padding-right: 1em;
    padding-top: 0;
}

/*进行缩写的CSS*/
.rightExample{
    border-top: 0;
    font:100%/1.6 serif;
    padding: 0 1em 2em;
}

2.使用16进制颜色可以进行缩写(觉得没有太大的必要)

color : #eebbcc;
color : #ebc; /*缩写后*/

3.连字符CSS选择器的命名规范
(1)长名称或是词组可以使用中横线来为选择器进行命名
(2)不建议使用''来进行类的命名,因为类会存在浏览器的兼容问题,而且还可以良好的区分js的变量命名
4.不要随意的使用id
id在js中是唯一的,不能多次尽心使用,这样的话复用的效果比较差,但是class却可以多次进行使用,另外id的优先级要高于class,所以对id的使用应该按需使用,不能滥用。
5.媒体查询(Media query)的位置
媒体查询尽可能在相关规则的附近,不要单独的打包放在一个单一的文件中,容易被使用者遗忘
6.对于带有前缀的属性
使用特东的厂商带有的前缀属性的时候,注意使用缩进,让每一个属性的值在垂直的方向进行对齐,便于编辑。

/* Prefixed properties */
.selector {
  -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.15);
          box-shadow: 0 1px 2px rgba(0,0,0,.15);
}

7.对于只含有一行的声明的样式,为了易读性和快速编辑,建议将语句放在同一行。

/* 单行声明在同一行进行声明 */
.span1 { width: 60px; }
.span2 { width: 140px; }
.span3 { width: 220px; }

/* 多行的声明,每一条声明占一行*/
.sprite {
  display: inline-block;
  width: 16px;
  height: 15px;
  background-image: url(../img/sprite.png);
}
.icon           { background-position: 0 0; }
.icon-home      { background-position: 0 -20px; }
.icon-account   { background-position: 0 -40px; }

8.避免使用不必要的嵌套
避免非必要的嵌套。这是因为虽然你可以使用嵌套,但是并不意味着应该使用嵌套。只有在必须将样式限制在父元素内(也就是后代选择器),并且存在多个需要嵌套的元素时才使用嵌套。

/*不使用嵌套*/
.table > thead > tr > th { … }
.table > thead > tr > td { … }

/*使用嵌套*/
.table > thead > tr {
  > th { … }
  > td { … }
}

9.注释
保你的代码能够自描述、注释良好并且易于他人理解。。好的代码注释能够传达上下文关系和代码目的。不要简单地重申组件或 class 名称。
10.代码组织
以组件为单位组织代码段。
制定一致的注释规范。
使用一致的空白符将代码分隔成块,这样利于扫描较大的文档。
如果使用了多个 CSS 文件,将其按照组件而非页面的形式分拆,因为页面会被重组,而组件只会被移动。

注意事项

1.所有的命名一律小写
2.尽量使用英文
3.避免过度任意的简写。.btn 代表 button,但是 .s 不能表达任何意思。
4.class 名称应当尽可能短,并且意义明确。
5.使用有意义的名称。使用有组织的或目的明确的名称,不要使用表现形式(presentational)的名称。
6.基于最近的父 class 或基本(base) class 作为新 class 的前缀。

CSS的样式表文件命名

主要的 master.css /main.css
模块 module.css
基本共用 base.css /common.css
布局、版面 layout.css
主题 themes.css
专栏 columns.css
文字 font.css
表单 forms.css
补丁 mend.css
打印 print.css

你可能感兴趣的:(CSS书写规范)