HTML5入门之标签篇《下》

doctype, charset & XHTML-style markup

In HTML, you can already reduce content size significantly by omitting optional tags. HTML 5, which is still under development, offers you a couple more options to decrease your file size beside leaving out optional stuff. Here we’ll feature some basic measures to reduce content size a bit more, plus the async and defer attributes useful to improve script execution.

Author: Jens Meiert, Google Webmaster

根据上面引用的内容我们知道了,HTML5简化了HTML中那些无关紧要的声明和减小 HTML 文件的大小,以达到提速的目的。

对比一下XHTML 1.0 Transitional的规范,html5基本上没有XHTML 1.0 Transitional严格的要求,并且简化了很多东西。

DTD / 文档类型定义

文档声明更简单了。HTML 5中,您可以设置 文档类型 只是说明(以任何形式,DTD是不区分大小

1
2
 
<!DOCTYPE html>

与此相比,

1
2
3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!--或者-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

你会发现,HTML 5 DTD是短得多,变得简单了。

xmlns 属性 / 命名空间

xmlns 属性可以在文档中定义一个或多个可供选择的命名空间。该属性可以放置在文档内任何元素的开始标签中。该属性的值类似于 URL,它定义了一个命名空间,浏览器会将此命名空间用于该属性所在元素内的所有内容。

HTML5不需要声明命名空间

1
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">

在HTML5中,这样写:

1
<html lang="en">

Encoding / 编码

当您指定您的文档的编码,HTML5 的编码声明使用起来就更容易,也更轻巧:

1
<meta charset="utf-8">

以前会这么做:

1
<meta http-equiv="content-type" content="text/html; charset=utf-8">

您的浏览器通常都知道,它得使用HTML处理。

type attributes / type 属性

在今天的 HTML 5 中,你可以去除声明 MIME 类型的 type 属性,比如

1
type="text/css"

1
type="text/javascript"

你可以用

1
2
3
<script>
//写一些脚本
</script>

替代

1
<script type="text/javascript"></script>

1
2
3
<style>
/*写一些样式*/
</style>

替代

1
<style type="text/css"></style>

在所有类型的页面中(甚至是 XHTHML)你可以省略

type="text/css"

HTML 5 使这一切变得更简单。

提示:在 HTML 5 中,所有元素都不支持 style 属性,如需为一个元素添加样式,请在 style 元素中使用 scoped 属性。

注释:如果没有定义 scoped 属性,则 < style> 元素必须是 head 元素的子元素,或者是(属于 head 元素的子元素的) noscript 元素的子元素。

async (and defer) / 用 HTML 5 来提升性能

async (and defer) 属性与将在与脚本元素一起使用。

要解释为什么这些属性会提升性能,最好是看一下未使用时发生了什么 — 各自的脚本在用户代理(浏览器,下同)继续解析页面前将被提取并直接执行,有时这个行为是我们想要的,有时不是。

新的 async 属性允许各自的脚本在可用时异步执行。HTML 4 中已经包含 defer 属性,指出 defer “对用户代理提供一个暗示:脚本不产生任何文档内容(比如,在Javascript 中没有 document.write ),这样,用户代理会继续解析并渲染”。

如果不使用 async 属性而只使用 defer,脚本在页面解析完成时已经执行。即使指定了 async 属性,也可同时指定defer 属性。这使得那些旧的只理解defer 的浏览器来回退 defer 行为而非默认的同步阻塞行为。

参考文献:

– The End –

站点统计