日期:2014-05-17  浏览次数:20622 次

html5系列3 : 从头开始-head标签

    在讲head标签前,我想先说下html这个根元素,一个网页所有的标签都位于html这个根元素内。既然从头开始,那么就从它开始吧。

    我们最经常见到的html标签是这么写的(比如,京东):

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

      其中的 xmlns 属性是 XHTML 1.0 的遗迹。它的意思是,在这个页面上的元素位于XHTML命名空间http://www.w3.org/1999/xhtml之中。但是 HTML5 的 元素都是具有这个命名空间的,因此不必再显示的写明了。不管有没有这个属性,HTML5页面在所有现代浏览器中将会有一致的表现。所以只需最简洁的<html>标签便可。

      接着就来聊聊<head>吧。我们先来看一段在XHTML1.0中常见的head标签代码:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>测试标题</title>
<link rel="stylesheet" type="text/css" href="test.css" />
<script type="text/javascript" src="http://localhost/test/testjs.js" ></script>
<script type="text/javascript">
alert("test");
</script>
</head>
     接着再来看看与之对应的HTML5下的标签
<head>
<meta charset="utf-8" />
<title>测试标题</title>
<link rel="stylesheet" href="test.css" />
<script src="http://localhost/test/testjs.js" ></script>
<script>
alert("test");
</script>
</head>
     观察上面两段代码,不难看出:

     (1)HTML5 对字符编码设置的简化

     (2)对于link rel="stylesheet", 用于Web的样式表语言只有一种,就是CSS,因此它就是type属性的默认值,所以HTML5做了一个小优化,允许你去掉type属性。

     (3)对于script标签,在HTML 4中,"type" 属性是必需的,但在 HTML5 中是可选的。如果使用 "src" 属性,则 <script> 元素必须是空的。

     既然谈到script不得不提一下,html5为script新增了一个属性async,用于异步执行脚本。

     顺带总结下HTML5中多种执行外部脚本的方法:

     (1)如果 async="async":脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行)

<script src="http://localhost/test/testjs.js" async="async" ></script>

     (2)如果不使用 async 且 defer="defer":脚本将在页面完成解析时执行