上QQ阅读APP看书,第一时间看更新
1.2.1 避免不必要的复杂性
规范可以写得十分复杂,但浏览器的实现应该非常简单。把复杂的工作留给浏览器后台去处理,用户仅需要输入最简单的字符,甚至不需要输入,这才是最佳文档规范。因此,HTML5首先采用化繁为简的思路进行设计。
【示例1】在HTML 4.01中定义文档类型的代码如下。
<!DOCTYPE html PUBLIC "-//W3C/DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML5简化如下。
<!DOCTYPE html>
HTML 4.01和XHTML中的DOCTYPE过于冗长,连自己都记不住这些内容,但在HTML5中只需要简单的<!DOCTYPE html>就可以了。DOCTYPE是给验证器用的,而非给浏览器,浏览器只需在DOCTYPE切换时关注这个标签,因此并不需要写得太复杂。
【示例2】在HTML 4.01中定义字符编码的代码如下。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
在XHTML 1.0中还需要再次声明XML标签,并在其中指定字符编码。
<?xml version="1.0" encoding="utf-8" ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
HTML5简化如下。
<meta charset="utf-8">
关于省略不必要的复杂性,或者说避免不必要的复杂性的例子还有不少,但关键是既能避免不必要的复杂性,又不会妨碍在现有浏览器中使用。
在HTML5中,如果使用link元素链接到一个样式表,先定义rel="stylesheet",然后再定义type="text/css",这样就重复了。对浏览器而言,只要设置rel="stylesheet"就够了,因为它可以猜出要链接的是一个CSS样式表,不必再指定type属性。
对Web开发而言,大家都使用JavaScript脚本语言,也就是默认的通用语言,用户可以为script元素定义type="text/javascript"属性,也可以什么都不写,浏览器自然会假设在使用JavaScript。