...
/* TODO: 图文混排 comm: g-imgtext */
.g-imgtext { sRules; }
### 9.行尾空格
删除行尾空格,这些空格没有必要存在
### 10.省略嵌入式资源协议头
省略图像、媒体文件、样式表和脚本等URL协议头部声明 ( http: , https: )。如果不是这两个声明的URL则不省略。
省略协议声明,使URL成相对地址,防止内容混淆问题和导致小文件重复下载(这个主要是指http和https交杂的场景中)。
不推荐:
推荐:
不推荐:
```
.example {
background: url(http://www.google.com/images/example);
}
```
推荐:
```
.example {
background: url(//www.google.com/images/example);
}
```
> 注:省略协议头在IE7-8下会有一点小问题,外部CSS文件(link和@import)会被下载两遍,所以该条目的约定看具体项目。
### 11.代码有效性
* 使用 [W3C HTML Validator](http://validator.w3.org/) 来验证你的HTML代码有效性;
* 使用 [W3C CSS Validator](http://jigsaw.w3.org/css-validator/) 来验证你的CSS代码有效性。
> 代码验证不是最终目的,真的目的在于让开发者在经过多次的这种验证过程后,能够深刻理解到怎样的语法或写法是非标准和不推荐的,即使在某些场景下被迫要使用非标准写法,也可以做到心中有数。
## HTML约定
### 1.文档类型
* 统一使用HTML5的标准文档类型:``;
> HTML5文档类型具备前后兼容的特质,并且易记易书写
* 在文档doctype申明之前,不允许加上任何非空字符;
> 任何出现在doctype申明之前的字符都将使得你的HTML文档进入非标准模式
* 不允许添加 `` 标签强制改变文档模式。
> 避免出现不可控的问题
### 2.省略type属性
在调用CSS和JavaScript时,可以将type属性省略不写
不允许:
应该:
> 因为HTML5在引入CSS时,默认type值为text/css;在引入JavaScript时,默认type值为text/javascript
### 3.省略属性值
非必须属性值可以省略
不允许:
应该:
> 这里的 readonly 和 disabled 属性的值是非必须的,可以省略不写,我们知道HTML5表单元素新增了很多类似的属性,如: required
### 4.用双引号包裹属性值
所有的标签属性值必须要用双引号包裹,同时也不允许有的用双引号,有的用单引号的情况
不允许:
去哪儿网
应该:
去哪儿网
### 5.嵌套
所有元素必须正确嵌套
* 不允许交叉;
不允许:
交叉嵌套
应该:
交叉嵌套
* 不允许非法的子元素嵌套。
不允许:
这是一个块级p元素
推荐:这是一个块级p元素
推荐:
> alt属性的内容为对该图片的简要描述,这对于盲人用户和图像损毁都非常有意义,即无障碍。对于纯粹的装饰性图片,alt属性值可以留空,如 alt=""
### 8.有效操作
为表单元素label加上for属性
不允许:
应该:
> for属性能让点击label标签的时候,同时focus到对应的 input 和 textarea上,增加响应区域
### 9.按模块添加注释
在每个模块开始和结束的地方添加注释
dffasdasdasdsdasdasd
dffasdasdasdsdasdasd
标题
应该:一些实际内容