HTML5规范~
规范的唯一判定方式是:保证正确性的同时,让人一看就是一个人写的~一致性。
HTML5:
展开说几点:
1. HTML5 DOCTYPE
<!DOCTYPE html>
2. 语言属性
2 <!-- ... -->
3 </html>
3. IE兼容模式
<meta>
标签来确定绘制当前页面所应该采用的 IE 版本。除非有强烈的特殊需求,否则最好是设置为 edge mode,从而通知 IE 采用其所支持的最新的模式。从IE8 出现文档兼容性。
浏览器模式(browser mode):用于切换IE针对该网页的默认文档模式、对不同版本浏览器的条件备注解析、发送给网站服务器的用户代理(User-Agent)字符串的值。网 站可以根据浏览器返回的不同用户代理字符串判断浏览器的版本和安装的功能,这样就可以向不同的浏览器返回不同的页面内容。
默认情况下,IE8的浏览器模式为IE8。用户可以通过单击地址栏旁边的兼容性视图按钮来手动切换到不同的浏览器模式。在IE8中,IE8兼容性视图会以IE7文档模式来显示网页,同时会向服务器发送IE7的用户代理字符串。
文档模式(document mode):用于指定IE的页面排版引擎(Trident)以哪个版本的方式来解析并渲染网页代码。切换文档模式会导致网页被刷新,但不会更改用户代理字 符串中的版本号,也不会从服务器重新下载网页。切换浏览器模式的同时,浏览器也会自动切换到相应的文档模式。
简而言之:浏览器模式的改变,能够改变请求中User Agent的值,让服务器获取后,能够按照UA的值进行对应处理(如果服务器上有这个处理功能)。而文档模式的改变只反映在本地的浏览器解析HTML上, 对客户端显示会有影响,而对服务器透明。同时,修改浏览器模式会影响文档模式,反之却不成立。
使用文档兼容性的方法比较容易,就是在我们要反馈给客户端的HTML代码中的head中添加一个meta元素,用来描述当前的文档需要使用何种浏览器版本来解释当前文档。
<
meta
http-equiv
=
"X-UA-Compatible"
content
=
"IE=EmulateIE7"
>
举几个例子:
IE=edge | 这个设置是让IE使用当前的最高版本进行文档的解析,官方文档指明,edge模式仅适用在测试环境,不建议在生产环境中使用 |
IE=7 | 使用标准IE7来处理 |
IE=EmulateIE7 | 模拟IE7来处理,遵循 <!DOCTYPE> 指令,如果文档有当前有一个合法的<!DOCTYPE>,就使用IE7模式,否者使用Quirks模式(Internet Explorer 5 Quirks),对于大部分网站来说,这是首选的兼容性模式 |
4. 字符编码
5. 引入js和css
type
属性,因为 text/css
和 text/javascript
分别是它们的默认值。6. 实用性
7. 布尔型
<label><input type=checkbox checked name=cheese disabled> Cheese</label>
<label><input type=checkbox checked=checked name=cheese disabled=disabled> Cheese</label>
<label><input type='checkbox' checked name=cheese disabled=""> Cheese</label>
8.减少标签数量:
<span class="avatar">
<img src="...">
</span>
<!-- Better -->
<img class="avatar" src="...">
CSS:
1. 声明顺序
相关的属性声明应当归为一组,并按照下面的顺序排列:
- Positioning
- Box model
- Typographic
- Visual
由于定位(positioning)可以从正常的文档流中移除元素,并且还能覆盖盒模型(box model)相关的样式,因此排在首位。盒模型排在第二位,因为它决定了组件的尺寸和位置。
其他属性只是影响组件的内部(inside)或者是不影响前两组属性,因此排在后面。
2 /* Positioning */
3 position: absolute;
4 top: 0;
5 right: 0;
6 bottom: 0;
7 left: 0;
8 z-index: 100;
9
10 /* Box-model */
11 display: block;
12 float: right;
13 width: 100px;
14 height: 100px;
15
16 /* Typography */
17 font: normal 13px "Helvetica Neue", sans-serif;
18 line-height: 1.5;
19 color: #333;
20 text-align: center;
21
22 /* Visual */
23 background-color: #f5f5f5;
24 border: 1px solid #e5e5e5;
25 border-radius: 3px;
26
27 /* Misc */
28 opacity: 1;
29 }