编写HTML文档时,必须遵循HTML语法规范。HTML文档实际上就是一个文本文件,它由标记和信息混合组成,当然这些标记和信息必须遵循一定的组合规则,否则浏览器是无法解析的。
HTML语言的规范条文不多,相信读者也很容易理解。从逻辑上分析,这些标记包含的内容就表示一类对象,也可以称为网页元素。从形式上分析,这些网页元素通过标记进行分隔,然后表达一定的语义。当很多时候,我们把网页标记和网页元素混为一团,而实际上,网页文档就是由元素和标记组成的容器。
- 所有标记都包含在“<”和“>”起止标识符中,构成一个标记。例如,<style>、<head>、<body>和<div>等。
- 在HTML文档中,绝大多数元素都有起始标记和结束标记,在起始标记和结束标记之间包含的是元素主体。例如,<body>和</body>中间包含的就是网页内容主体。
- 起始标记包含元素的名称,以及可选属性,也就是说元素的名称和属性都必须在起始标记中。结束标记以反斜杠开始,然后附加上元素名称。例如:
<tag>元素主体</tag>
- 元素的属性包含属性名称和属性值两部分,中间通过等号进行连接,多个属性之间通过空格进行分隔。属性与元素名称之间也是通过空格进行分隔。例如:
<tag a1="v1" a2="v2" a3="v3" …… an="vn">元素主体</tag>
- 少数元素的属性也可能不包含属性值,仅包含一个属性名称。例如:
<tag a1 a2 a3 …… an>元素主体</tag>
- 一般属性值应该包含在引号内,虽然不加引号,浏览器也能够解析,但是读者应该养成良好的习惯。
- 属性是可选的,元素包含多少个属性,也是不确定,这主要根据不同元素而定。不同的元素会包含不同的属性。HTML也为所有元素定义了公共属性,如title、id、class、style等。
虽然大部分标记都是成对出现,但是也有少数标记不是成对的,这些孤立的标记,被称为空标记。空标记仅包含起始标记,没有结束标记。例如:
<tag>
同样,空标记也可以包含很多属性,用来标识特殊效果或者功能,例如:
<tag a1="v1" a1="v1" a2="v2" …… an="vn">
- 标记可以相互嵌套,形成文档结构。嵌套必须匹配,不能交错嵌套,例如,<div><span></div></span>。合法的嵌套应该是包含或被包含的关系,例如,<div><span></span></div>或<span><div></div></span>。
- HTML文档所有信息必须包含在<html>标记中,所有文档元信息应包含在<head>子标记中,而HTML传递信息和网页显示内容应包含在<body>子标记中。
对于HTML文档来说,除了必须符合基本语法规范外,我们还必须保证文档结构信息的完整性。完整文档结构如下所示。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w1.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w1.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>文档标题</title> </head> <body></body> </html>
HTML文档应主要包括如下内容。
- 必须在首行定义文档的类型,过渡型文档可省略。
- <html>标记应该设置文档名字空间,过渡型文档可省略。
- 必须定义文档的字符编码,一般使用<meta>标记在头部定义,常用字符编码包括中文简体(gb2312)、中文繁体(big5)和通用字符编码(utf-8)。
- 应该设置文档的标题,可以使用<title>标记在头部定义。
HTML文档扩展名为.htm或.html,保存时必须正确使用扩展名,否则浏览器无法正确地解析。如果要在HTML文档中增加注释性文本,则可以在“<!--”和“-->”标识符之间增加,例如:
<!-- 单行注释-->
或
<!----------------- 多行注释 ----------------->