HTML5+CSS3+JavaScript从入门到精通:上册(微课精编版·第2版)
上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。