日期:2014-05-17 浏览次数:20622 次
在讲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":脚本将在页面完成解析时执行