首页 > 代码库 > HTML5:理解head

HTML5:理解head

HTML文档的head部分,通常包含指定页面标题。为搜索引擎提供关于页面本身的信息。加载样式表,以及加载JavaScript文件(出于性能考虑。多数时候放在页面底部</body>标签结束前加载JavaScript)。除了title,head里的内容对页面訪问者来说都是不可见的。

以下是HTML文档head部分的一个样例:

<head>
	<meta charset="utf-8" />
	<meta name="author" content="Adam Freeman"/>
	<title>Your page title</title>
	<base href=http://www.mamicode.com/"http://titan/listings/" target="_blank"/>>

title元素

head元素中必须包含一个title元素,该元素内容会出如今浏览器的标签页中或者出如今浏览器窗体的顶部,作为网页标题,和浏览器相关。

base元素

base元素用来设置一个基准URL,让HTML文档中的相对链接在此基础上进行解析。如未指定,则使用当前加载文档的URL。

base元素还能设定链接在用户点击时的打开方式,以及提交表单时浏览器怎样反应。


<base href=http://www.mamicode.com/"http://titan/listings/" target="_blank"/>
1)href即为指定的基准URL。
2)target属性规定在何处打开页面上的全部链接,包含值:
1)_blank:在新窗体中打开被连接文档;
2)_self:默认。在相同的框架中打开被链接文档。
3)_parent:在父框架打开被链接文档;
4)_top:在整个窗体中打开被链接文档;
5)framename:在指定框架中打开被链接文档。

meta元素

meta元素用来定义文档的各种元数据,meta元素能够有多种用途,但每一个meta元素仅仅能用于一种用途,假设须要使用不止一种。就须要在head元素中加入多个meta元素。


指定名/值元数据对

<meta name="author" content="Adam Freeman"/>
name属性用来表示元数据的类型,content属性提供值。name属性包含以下值:
1)application name:当前页所属Web应用系统的名称;
2)author:当前页的作者名。
3)description:当前页的说明;
4)generator:用来生成HTML的软件名称;
5)keywords:描写叙述页面的内容。


除了以上5个提前定义的元数据名称。还能够使用元数据扩展,这里(http://wiki.whatwg.org/wiki/MetaExtensions)有这些扩展的一份时常更新的清单。有些扩展用的比較多,比如robots元数据。HTML文档的作者能够用它告诉搜索引擎该怎样对待该文档:

<meta name="robots" content="noindex"/>
该属性有三个大多数搜索引擎都认识的值:
1)noindex:不要索引本页;
2)noarchive:不要将本页存档或缓存;
3)nofollow:不要顺着本页中的链接继续搜索下去。


大多数搜索引擎都提供了优化网页或整个站点的指南,能够查看对应搜索引擎提供的网页或站点优化指南。

声明字符编码

<meta charset="utf-8" />
head元素中的meta元素声明文档的字符编码为UTF-8(默认)。

模拟HTTP标头字段

meta元素能够用来模拟或替换三种HTTP标头字段的值。


<meta http-equiv="refresh" content="5"/>
http-equiv属性的用途是指定所要模拟的标头字段名称,字段值在content属性中指定。

http-equiv属性的可选值例如以下:
1)refresh:以秒为单位指定一个时间间隔,在此时间过去之后将从server又一次加载当前页面。也能够另行指定一个URL让浏览器加载,如:

<meta http-equiv="refresh" content="5;http://www.apress.com"/>
2)default-style:指定页面优先使用的样式表。content属性的值必须是同一文档中某个style元素或link元素的title属性值;
3)content-type:还有一种声明HTML页面所用字符编码的方法,如:
<meta http-equiv="content-type" content="text/html charset=UTF-8"/>

style元素

定义HTML文档内嵌的CSS样式。
	<style type="text/css">
		a{
			background-color: grey;
			color: white;
			padding: 0.5em;
		}
	</style>
上面为a元素设计了一个新样式。style元素能够出如今HTML文档中的各个部分。一个文档能够包含多个style元素。该元素能够用于为模板定义的样式(link元素导入)提供补充。
能够为style元素指定样式适用的媒体:
	<style media="screen AND (min-width:500px)" type="text/css">
		...... 
	</style>
media属性中的screen是设备类型,可选值的范围包含:
1)all:将样式用于全部设备(默认值);
2)aural:将样式用于语音合成器;
3)braille:将样式用于忙问设备;
4)handheld:将样式用于手持设备;
5)projection:将样式用于投影机。
6)print:将样式用于打印预览和打印页面时;
7)screen:将样式用于计算机显示器屏幕;
8)tty:将样式用于电传打字机之类的等宽设备;
9)tv:将样式用于电视机。
media属性中的(min-width:500px)指定特性,包含:
1)width height:指定浏览器窗体的宽度和高度,单位px,比如:width:200px
2)device-width device-height:指定整个设备(而不仅仅是浏览器窗体)的宽度和高度,单位px,比如:min-device-height:200px
3)resolution:指定设备的像素密度。单位dpi(点/英寸)或dpcm(点/厘米),比如:max-resolution:600dpi
4)orientation:指定设备的较长边朝向,可选值为portrait和landscape
5)aspect-ratio device-aspect-ratio:指定浏览器窗体或整个设备的像素宽高比,比如:min-aspect-ratio:16/9
6)color monochrome:指定彩色或黑白设备上每一个像素占用的二进制位数,比如:min-monochrome:2
7)color-index:指定设备所能显示的颜色数目,比如:max-color-index:256
8)scan:指定电视的扫描模式,包含值progressive和interlace
9)grid:指定设备的类型,支持的值为0和1(1代表网格型设备,使用固定的网格显示内容)

link元素

用来在HTML文档和外部资源(如CSS样式表)之间建立联系。link元素包含6个局部属性。例如以下:
1)href:指定link元素指向的资源的URL。
2)hreflang:说明所关联资源使用的语言。
3)media:说明所关联的内容用于哪种设备。同style中的media属性;
4)rel:说明文档与所关联资源的关系类型。值的范围例如以下:
---alternate:链接到文档的替代版本号,比方还有一种语言的译本;
---author:链接到文档的作者;
---help:连接到当前文档的说明文档。
---icon:指定图标资源;
---license:链接到当前文档的相关许可证。
---pingback:指定一个回探(pingback)server,从其它站点链接到博客的时候它能自己主动得到通知;
---prefetch:预先获取一个资源;
---stylesheet:加载外部样式表。
5)sizes:指定图标的大小。
6)type:指定所关联资源的MIME类型,如text/css、image/x-icon。


加载外部样式表

<link rel="stylesheet" type="text/css" href=http://www.mamicode.com/"styles.css"/>
能够使用多个link元素加载多个外部资源。


为页面定义站点标志

<link rel="shortcut icon" href=http://www.mamicode.com/"favicon.ico" type="image/x-icon" />
浏览器加载HTML页面时,会加载并显示站点标志。


注:假设站点标志文件位于/favicon.ico(即Webserver的根文件夹)。那就不必用到link元素,大多数浏览器在加载页面时都会自己主动请求这个文件,就算没有link元素也是如此。


预先获取资源

能够要求浏览器预先获取估计非常快就要用到的资源。
<link rel="prefetch" href=http://www.mamicode.com/"/page2.html"/>
注:眼下不是全部浏览器都支持该功能。

script元素

用于在页面中加入脚本,能够直接在文档中定义脚本和引用外部文件里的脚本。

该元素支持的局部属性例如以下:
1)type:表示所引用或定义的脚本的类型,对于JavaScript脚本这个属性能够省略
2)src:指定外部脚本文件的URL
3)defer async(HTML5新增):设定脚本的运行方式,这两个属性仅仅能与src属性一同使用
4)charset:说明外部脚本文件所用字符编码,该属性仅仅能与src属性一同使用

定义文档内嵌脚本

<script>
	document.write("This is from the script");
</script>
默认情况下。浏览器在页面中一遇到脚本就会运行。

加载外部脚本库

能够将脚本放到单独的文件里,然后用script元素加载HTML文档。
<script src=http://www.mamicode.com/"simple.js"></script>

推迟脚本的运行

使用async和defer属性能够对脚本的运行方式加以控制,defer属性告诉浏览器要等页面加载和解析完毕后才干运行脚本:
<script defer src=http://www.mamicode.com/"simple2.js"></script>
因为html遇到脚本就会运行,假设你的脚本须要使用到html脚本中的内容,通常你须要将脚本放到对应的html脚本后。但在html5中,使用defer属性就能达到相同的目的。


浏览器遇到script元素时的默认行为是在加载和运行脚本的同一时候暂停处理页面。各个script元素依次同步运行。async属性能够在浏览器解析HTML文档时异步加载和运行脚本。假设运用得当,能够大大提高总体加载性能。

<script async src=http://www.mamicode.com/"simple2.js"></script>

noscript元素

noscript元素用来向禁用了JavaScript或浏览器不支持JavaScript的用户显示一些内容。


<noscript>
	<h1>JavaScript is required!</h1>
	<p>You cannot use this page without JavaScript</p>
</noscript>
还有一种选择是在浏览器不支持JavaScript时将其引至还有一个URL。
<noscript>
	<meta http-equiv="refresh" content="0;http://www.apress.com"/>
</noscript>

HTML5:理解head