无意在dev.to上看到有人问html的书写规范,心想html又不是一个编程语言(其实是标记语言),需要啥规范呢?能够立马想到的就是使用合理的标签,语义化等这些东西。然后看了下别人的回答:
- 推荐谷歌的html/css规范
- 有人推荐了一个html工具 tidy。看了下感觉还可以,比较适合新手吧!老司机们不需要啦~ 下面我去阅读了下谷歌的html/css规范,简单梳理下一些点。英文好的可以直接阅读原文:https://google.github.io/styleguide/htmlcssguide.html 。
关于HTML
引用外部资源:协议,推荐使用https。
关于这点其实存在异议:大多数情况下应用是从http过度到https,为了保证两者兼容性,防止过度期间出现意外,我们都采用去掉http或https只保留//的方法。
猜想可能是谷歌为了更多推广https。所以这个不予置评!
使用两个空格来缩进。不要使用tab或者tab跟空格混合使用。
原因则是使用空格能够保证格式的整齐,比如其他人打开你的代码或者你在网页中查看源码,而用tab会出现对齐不一致的现象。
实际开发中,我们会在代码编辑器中设置缩进为2个空格!
所有代码都用小写字母,包括:元素名、属性名、属性值(除了text/CDATA)、选择器、CSS属性值。
去掉末尾空格,节省字符大小。
指定utf-8编码格式。
1
通过 <meta charset = "utf-8"> 来指定编码。
语义化。老生常谈的问题,即使用合理的标签。
设置替代文本。如图片设置alt属性,对于盲人更加友好。
分离样式、标记和脚本。即样式放在css文件中,脚本写在js里面,这样你的代码会比较清晰,便于维护。
减少实体引用。
1
2
3
4
5
6<!-- 不推荐 -->
The currency symbol
for the Euro is & ldquo; & eur; & rdquo;.
<!-- 推荐 -->
The currency symbol
for the Euro is“€”.type属性可省略,在HTML5中text/css和text/javascript是默认值,因此没有必要指定,对于较早的浏览器甚至也可以行得通。
HTML属性值一律使用双引号(””),而不是单引号(’’)。
关于CSS
ID和class命名,class命名推荐使用-作为分隔符(error-status,而不是_)
使用短ID或类命名,但确保他们不要太过隐晦,或直白(如#blue-button)。
在ID和类名前面不要再加标签名,会对性能提升很有帮助。
1
2
3
4
5
6
7/* 不推荐 */
ul #example {}
div .error {}
/* 推荐 */
#example {}
.error {}@charset应使用双引号,url()中不使用引号,0后面不跟单位,前面的0可以省略(0.8em -> .8em)
分块注释,代码块之间用空行分开。
避免浏览器hacks。