网页的基本标签
符合语法标准的网页,应该满足下面的基本结构。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
</html>
不管多么复杂的网页,都是从上面这个基本结构衍生出来的。
注意,HTML 代码的缩进和换行,对于浏览器不产生作用。所以,上面的代码完全可以写成一行,渲染结果不变。上面这样分行写,只是为了提高可读性。
下面介绍,这个基本结构的主要标签,它们构成网页的骨架。
<!doctype>
网页的第一个标签通常是<!doctype>
,表示文档类型,告诉浏览器如何解析网页。
一般来说,只要像下面这样,简单声明doctype
为html
即可。浏览器就会按照 HTML5 的规则处理网页。
<!doctype html>
有时,该标签采用完全大写的形式,以便区别于正常的 HTML 标签。因为<!doctype>
本质上不是标签,更像一个处理指令。
<!DOCTYPE html>
<html>
<html>
标签是网页的顶层容器,也称为根元素(root element),其他元素都是它的子元素。一个网页只能有一个<html>
标签。
该标签的lang
属性,表示网页内容默认的语言。
<html lang="en">
上面代码表示,网页的语言是英语。更详细的介绍,参见《属性》一章。
<head>
<head>
标签是一个容器标签,用于放置网页的元信息。它的内容不会出现在网页上,而是为网页渲染做准备。
<!doctype html>
<html>
<head>
<title>网页标题</title>
</head>
</html>
<head>
是<html>
的第一个子元素。如果网页不包含<head>
,浏览器会自动创建一个。
<head>
的子元素一般有下面七个,后文会一一介绍。
<meta>
:设置网页的元数据。<link>
:连接外部样式表。<title>
:设置网页标题。<style>
:放置内嵌的样式表。<script>
:引入脚本。<noscript>
:浏览器不支持脚本时,所要显示的内容。<base>
:设置网页内部相对 URL 的计算基准。
<meta>
<meta>
标签用于设置或说明网页的元数据,必须放在<head>
里面。一个<meta>
标签就是一项元数据,网页可以有多个<meta>
。
一般来说,网页至少应该具有以下两个<meta>
标签,而且必须在<head>
的最前面。
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Page Title</title>
</head>
(1)charset 属性
<meta>
有一个charset
属性,指定网页的编码方式,该属性非常重要。如果设置得不正确,浏览器可能无法正确解码,就会出现乱码。
<meta charset="utf-8">
上面代码声明,网页为utf-8
编码。虽然可以使用其他的编码方式,但几乎总是应该采用 UTF-8。注意,声明的编码方式,应该与网页实际的编码方式一致,即声明了utf-8
,网页就应该使用 UTF-8 编码保存。
(2)name 属性,content 属性
<meta>
的name
属性表示元数据的名字,content
属性表示元数据的值。
<head>
<meta name="description" content="HTML 语言入门">
<meta name="keywords" content="HTML,教程">
<meta name="author" content="张三">
</head>
上面代码包含了三个元数据:description
是网页内容的描述,keywords
是网页内容的关键字,author
是网页作者。
元数据有很多种,大部分涉及浏览器内部工作机制,或者特定的使用场景,这里就不一一介绍了。下面是一些例子。
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="application-name" content="Application Name">
<meta name="generator" content="program">
<meta name="subject" content="your document's subject">
<meta name="referrer" content="no-referrer">
(3)http-equiv 属性,content 属性
http-equiv
属性用来覆盖 HTTP 回应的头信息字段,content
属性是该字段的内容。
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
上面代码可以覆盖 HTTP 回应的Content-Security-Policy
字段。
下面是另一些例子。
<meta http-equiv="Content-Type" content="Type=text/html; charset=utf-8">
<meta http-equiv="refresh" content="30">
<meta http-equiv="refresh" content="30;URL='http://website.com'">
<title>
<title>
标签用于指定网页的标题,会显示在浏览器窗口的标题栏。
<head>
<title>网页标题</title>
</head>
搜索引擎根据这个标签,显示每个网页的标题。它对于网页在搜索引擎的排序,有很大的影响,应该精心安排,反映网页的主题。
<title>
标签的内部,不能再放置其他标签,只能放置无格式的纯文本。
<body>
<body>
标签是一个容器标签,用于放置网页的主体内容。浏览器显示的页面内容,都是放置在它的内部。它是<html>
的第二个子元素,紧跟在<head>
后面。
<html>
<head>
<title>网页标题</title>
</head>
<body>
<p>hello world</p>
</body>
</html>