|
|
今天无意间看到了Google的HTML/CSS编码规范,发现了不少自己很容易忽略的问题,特意仔细看了看,将其整理翻译出来分享给大家。Google规范的原文链接大家可以访问:http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml
2 _) Z) }7 Z. @ ~ 1.协议头:
& k7 \ k9 C9 _" v/ _, U 建议在指向图片或其他媒体文件、样式表和脚本的URL地址中省略http:https:协议部分,除非已知相应文件不能同时兼容2个协议。8 Y; H+ u8 z/ S
注:这个倒是真正平日不注意的,只要是绝对地址,http:总是带着。如果仔细想一想,还真有道理。! y* h- y- X/ w+ ^5 Q: `
2.缩进:每次缩进使用双空格
* A2 l r d3 W! d- x4 B2 g$ n: U& B! _ 不要使用tab制表符或制表符加空格的混合方式缩进, }( K" d; b" t. ?, G R& n
3.大小写:只使用小写
# ~ i+ ]5 A1 y3 W) s 所有的代码都应是小写的,包括元素名称、属性,属性值(除非text或CDATA的内容)、选择器、css属性、属性值(字符串除外)
* a+ ^% e! @( g2 c$ P 4.尾随空格
, H; J3 L# O# b) p 尾随空格是不必要的,容易搞复杂diff文件。这个绝对是经验教训的总结!!!/ S& j, {! L# Y! x, Z, @$ A$ q0 H1 z
5.编码格式:使用UTF-8
, A+ F, p( h7 [1 J 请确保您的编辑器使用的字符编码??为UTF-8,没有字节顺序标记。在html模板或文档中通过 <meta charset="utf-8″>来
4 C& ^1 ?4 a8 A/ g$ ^1 @' z 定义编码格式。关于编码格式参考 Character Sets & Encodings in XHTML, HTML and CSS' r- Y# a# p3 \ ]8 B" G8 y6 E" J
6.注释6 f$ p# b0 N7 N* i
根据需要解释代码,这个就不多说了,团队开发这个非常重要,尽管很多时候大家不愿意遵守,但确实重要!!!
; V# q" {8 d* S 7.TODO待定项* |( I6 Y% g1 T* ?) i+ x
尚未实现的或待定的内容一定要标识强调出来,利用TODO辨识,而非其他诸如@@来强调。4 j7 ?( Z% H8 k9 z
在todo项中如果有必要列明联系人,比如负责人: t7 p) L, ^; Z5 `6 \
在TODO后追加一个冒号作为行动内容,例如 TODO:为美瑞网增加html5模板
" u! w2 V$ o4 J/ d, V" g: e 8.文档类型:使用HTML51 `0 r3 D; y7 @0 K" Y2 x
使用<!DOCTYPE html>.HTML(text/html)类型文件相对XHTML(alication/xhtml+xml)文件,在浏览器及框架支持上和优化空间上都要好很多。
: N! A4 W9 ]# `: u7 L* W 9.HTML 合法性验证. R) Q8 @; p# T5 n- T. D" n; }
合法的使用HTML,并利用w3c的工具(W3C HTML validator)进行检查。唯一例外就是因为性能原因需要压缩文件大小。
8 [ t/ J' k) v* U, A 原文如下:Use valid HTML code unless that is not possible due to otherwise unattainable performance goals regarding file size. 但这个确实很难想象,省略标签节省的文件大小能有多少字节?但带来的问题可是风险居高哦!
+ i' _' a7 S2 u+ U4 c9 p6 l% y 10.语义性9 D, p! ~' U) |1 N4 ]3 E) n
根据目的来合理使用HTML,这点对于HTML5而言尤为重要。下面例子可以对比,能实现同样的结果,但效率和可读性却有很大差别。. w+ B+ P3 ]( v, U/ @
对于HTML5而言,例如header、footer、nav、section等跟div能实现的功能基本类似,但是语义性上有着天壤之别。
3 o# [9 v' d* L# W 11.多媒体后备:为多媒体提供备选内容
& |4 e8 l2 p$ V5 s$ k 这个属于老生长谈的内容,典型就是为img添加alt内容。
! u0 F6 Q" [2 D 12.关注点分离9 u L$ k# l, |7 B
这点很重要,严格遵守将组织结构(markup)、表现样式(style)和行为动作(script)分开处理的原则,并且尽量使三者之间的关联度 降到最小。这主要是基于维护性的考虑,通常,更新style文件或脚本文件比更改HTML文件的代价要小很多,试想一下,对于一个有超过10万页面的网站 进行局部颜色调整,是每个html文件修改容易还是修改一个style文件容易?* ^* L" x% E |9 T
可选Tags:省略可选的标签. q: H! H8 U4 D
13.实体引用
0 |0 c, u2 e# ] S; B 假定开发团队内,文件和编辑器都是使用同样的编码格式(UTF-8),则没有必要使用实体引用的方式,例如—,”, or ☺ 除非一些HTML中具有特定含义的字符,如"<",或不可见字符如空格
6 P" ] v' Y) M 14.Type属性:省略
* K0 \. h0 e( J, Y 将样式表和脚本中的Type省略,除非你不是用的css或javascript,在HTML5中,该值默认是text/css和text/javascript
1 v$ U* K$ x4 d$ |1 x 15.block,list或table元素
7 }/ g, J9 X4 ]* J3 U+ u) o4 { 针对每个block,list或table元素另起一行,并在每个子元素前缩进。这样可读性好,例如:% Z" E# t u( |% A7 Y6 h
对于使用HTML5的朋友,可以参考。当然,不同团队还会整理出适合自己的代码规范,上述应该来说属于比较基本的规则内容。
! u0 O5 y k; ^' I (责任编辑:站长吧站长网http://htmlba.com/zixun/dongtai/2012/0705/684.html) |
|