18. HTML-- <head>标签:头部
1. 前言
HTML 中的 <head> 标签是所有头部标签的容器,这些头部标签用来定义有关 HTML 文档的元数据(描述数据的数据)以及所需资源的引用(例如 CSS 样式文件、JavaScript 脚本文件),对文档能够在浏览器中正确显示起到了非常重要的作用。根据我们的需求,可以在 HTML 头部定义大量的元数据,也可以定义很少或者根本就不定义。虽然头部标签是 HTML 文档的一部分,但其中的内容并不会显示在浏览器中。
在 <head> 标签中可以使用的头部标签有 <title>、<base>、<link>、<style>、<meta>、<script> 和 <noscript> 等,下面就来简单介绍一下它们。
2. <title> 标签
<title> 标签用来定义 HTML 文档的标题,只有包含 <title> 标签的文档才算是一个有效的 HTML 文档。另外,一个 HTML 文档中仅允许存在一个 <title> 标签,并且 <title> 标签必须放置在 <head> 标签中。
注意,在 <title> 标签内部仅允许包含纯文本内容,不能包含其他 HTML 标签。
<title> 标签的主要作用如下所示:
- 在浏览器标题栏或者任务栏中显示标题;
- 当将页面添加到收藏夹(书签)时提供标题;
- 在搜索结果中显示页面标题。
下面的示例演示了如何在 HTML 文档中使用 <title> 标签:
<head> <meta charset="utf-8"> <title>C语言中文网:一个在线学习编程的网站</title> </head>
<title> 标签的内容必须与当前文档有关,并且不应该过长,中文页面请尽量控制在 30 个字符(包括空格)以内。
3. <base> 标签
<base> 标签用于为页面中所有相对链接指定一个基本链接,当您设置了基本链接后,当前页面中的所有相对链接都会使用这个基本链接作为前缀,如下例所示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title><base>标签演示</title> <base href="http://c.biancheng.net/"> </head> <body> <ul> <li><a href="index.html">首页</a></li> <li><a href="html/index.html">HTML教程</a></li> </ul> </body> </html>
上面的示例中第一个 <li> 标签中的超链接会被解析为“http://c.biancheng.net/index.html”,第二个 <li> 中的超链接会被解析为“http://c.biancheng.net/html/index.html”。
注意,HTML 文档中的 <base> 标签必须出现在任何引用外部资源的标签之前,而且一个 HTML 文档中仅允许定义一个 <base> 标签。
4. <link> 标签
<link> 标签经常用于引用外部 CSS 样式表,<link> 标签中包含两个主要的属性,分别是 rel 和 href。rel 属性用来指示引用文件的类型,href 属性用来设置外部文件的路径。示例代码如下:
<head> <title>此处书写标题</title> <link rel="stylesheet" href="common.css"> </head>
HTML <head> 标签中可以包含任意数量的 <link> 标签。
5. <style>
使用 <style> 标签可以在 HTML 文档中嵌入 CSS 样式,需要注意的是在 <style> 标签中定义的样式仅对当前 HTML 文档有效。示例代码如下:
<head> <title>此处书写标题</title> <style> body { background-color: YellowGreen; } h1 { color: red; } p { color: green; } </style> </head>
注意:对于文档中的唯一样式可以使用 <style> 标签,但对于在多个文档中通用的样式,使用外部样式表更为合适。关于在 HTML 中嵌入 CSS 的更多内容,请转到《HTML嵌入CSS样式(四种方法)》。
6. <meta> 标签
<meta> 标签用于提供有关 HTML 文档的元数据,例如页面有效期、页面作者、关键字列表、页面描述等信息。<meta> 标签定义的数据并不会显示在页面上,但却会被浏览器解析。
1) 定义字符集
<meta charset="UTF-8">
charset 属性用来指定 HTML 文档的字符编码,上面的示例中,我们将文档的字符编码设置为了“UTF-8”。
2) 定义页面描述
<meta name="description" content="HTML 是 Hyper Text Markup Language 的简写,表示超文本标记语言,同时 HTML 也是我们学习前端开发的基础。随着 web 前端技术的飞速发展,HTML 和 CSS 也成为了编程者的必备技能。">
定义页面的描述信息有利于搜索引擎的搜索。
<title> 标签定义文档标题,name="description" 定义文档描述,描述的长度通常大于标题。
3) 定义关键字
<meta name="keywords" content="HTML, HTML教程, HTML入门">
关键字用于为搜索引擎提供与页面有关的信息。
4) 定义页面作者
<meta name="author" content="严长生">
通过某些内容管理系统可以自动提取作者信息。
5) 刷新页面
<meta http-equiv="refresh" content="30">
上例中的代码用于向浏览器发送一个指令,使浏览器在经过指定的时间间隔(30 秒)后自动刷新页面。在 content 属性中除了可以指定时间间隔外,还可以再指定一个链接,这时页面将在指定的时间后重定向到链接所指向的页面,如下例所示:
<meta http-equiv="refresh" content="10; url=https://c.biancheng.net/">
7. <script> 标签
<script> 标签用于定义 JavaScript 脚本,示例代码如下:
<head> <title>C语言中文网</title> <script> document.write("C语言中文网") </script> </head>
有关 <script> 标签的详细介绍请查阅《HTML与JavaScript》一节。
8. <noscript> 标签
当用户的浏览器不支持 JavaScript 脚本或者禁用 JavaScript 脚本时,可以在 <noscript> 标签中定义一些内容来替代不能运行的 JavaScript 脚本或者给用户一些提示。除了 <script> 标签外,在 <noscript> 标签中可以包含任何 HTML 元素,如下例所示:
<head> <title>C语言中文网</title> <noscript> <p>您的浏览器不支持 JavaScript 或者您禁用了 JavaScript,请<a href="http://c.biancheng.net/">点击这里</a>了解如何启用 JavaScript。</p> </noscript> </head>