2.6 语法:以自己的方式进行标记
一些编程语言,如Python,以其特殊的方式编写说明。使用空格来缩进代码是强制性的,空格很重要。而其他编程语言,如JavaScript,却不在格式方面作任何要求,每一行开头是否空格并不那么重要。
如果与一些程序员同处一室并说出“重要的空格”之类的话,那么就会导致一整晚不断升温的激烈辩论。
关于空格重要性的辩论核心存在一个基本的哲学问题:汇编语言应该保持特定的汇编风格,还是编写者可以按自己喜欢的风格编写?
标记并不需要空格。如果想要在每次嵌套元素时都添加新的一行和缩进,则需要添加空格,但浏览器和校验器并不需要空格。这并不意味着标记对所有情况都适用。有些种类的标记遵循更为严格的编写风格。
在XHTML 1.0之前,使用大写还是小写来编写标签并不重要。是否引用属性也同样不那么重要。甚至对于某些元素来说,是否包含结束标记都不会造成任何影响。
XHTML 1.0强制执行XML的语法:所有标签都必须为小写,所有属性都必须加引号,所有元素都必须包含有结束标记。对于独立元素的特殊情况,例如br,以标记结束替换为以斜线
结束。
如果使用HTML5,那么任何格式的命令都可以,无论是大写、小写、带引号的、不带引号的、带有结束符号的和不带有结束符号的,使用哪种格式完全取决于程序员。
多年来,我一直在使用XHTML 1.0的doctype。这是因为我喜欢按照一种特定的样式编写程序,从而也比较喜欢W3C验证对固定样式的强制要求。现在,我正在使用的是HTML5,所以执行哪种编写样式可以由自己决定。
我可以理解为什么有些人不喜欢HTML5语法的随意性,因为这似乎是从最佳范例向后的退步。有些人甚至会说,HTML5对语法的宽松限制会导致不良标记。虽然我并不这样认为,但可以理解为什么这会成为一个备受关注的问题。因为这就好像是一种强制使用空格的汇编语言突然在编程原则上变得宽容起来。
就个人而言,我可以接受HTML5语法的随意性。但与此同时,我也强迫自己使用个人青睐的编写风格。不过,我更希望见到更多的、可以以一种特定风格测试标记的工具。在编程界,这些工具被称为lint工具,即标记可疑编码范例的程序。验证器检查的是doctype,而用于标记的lint工具却与之不同;这两者若可以结合为一种精益且介于两者之间的lint验证设备,那将会更好。
完成这样设备的网页设计师将会获得来自世界各地的人们永久的尊重和敬佩。