HTML语法
HTML 基本结构
HTML 文件后缀名为“.htm
”或“.html
”,是一种包含了 HTML 标记的文本文件,我们通常所说的网页实质上就是 HTML 文件,HTML 的编辑非常简单,学习成本很低,而且所有网页的源代码都可通过浏览器直接查看。正如蒂姆·伯纳斯-李所说:“(互联网)起飞原因在于,全球的人可随意融入参与。”
创建网页的方式有很多,我们可以新建一个空白的文本文件,编辑之后保存为后缀名为“.html
”的文件即可。如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>文档标题</title>
</head>
<body>
</body>
</html>
在上面的 HTML 文件中我们可以看出,HTML 文档可以分为文档声明、网页头部分和网页主体部分三部分。
网页头部分指的是<head>
和</head>
部分,在这个区域一般放置网页相关的内容,比如网页编码方式、关键词、网页内容描述和网页相关联的文件等等。这些包含在<head>
和</head>
之间的内容一般不会显示在用户的浏览器中。
网页主体部分指的是包含在<body>
和</body>
之间的部分,这部分内容是显示在浏览器中的内容,大部分 HTML 的编辑工作都是在主体部分中完成,如图片、文字、超链接等等。
头部分和主体部分又包含在<html>
和</html>
之中。浏览器会把<html>
和</html>
之中的内容视为网页。
元素及标签
元素是构成网页内容的基础单位,元素由起始标签、内容和结束标签构成,如:
<h1>一级标题</h1>
其中<h1>
是h1
元素的起始标签,标签以“<
”开始,以“>
”结束,</h1>
是结束标签,结束标签中含有“/
”,位于起始标签和结束标签之间的“一级标题”是h1
元素标记的内容。
元素可以嵌套,比如在段落 p
中插入图片img
。这时,img
元素作为整体构成段落元素p
的内容。
<p>
<img src="http://img1.gtimg.com/63530531.jpg" />
</p>
并非所有元素都包含起始标签和结束标签。如上例中,img
元素就只有一个起始标签,没有结束标签,这一类元素被称为自闭和元素。除img
元素之外,常见的自闭和元素还有:<br>、<embed>、<hr>、<input>、<link>、<meta>、<source>、<wbr>
。
属性及属性值
属性(Attributes)及其值(Values)对于某些元素而言是必不可少的,比如新闻网页中经常使用图片来传递信息,图片在 HTML 中使用img
元素来标记,但必须使用相应的属性及其值,告诉浏览器图片存放的位置、图片的大小等信息,其中图片存放的位置用src
属性来表示,而图片的大小用 width
和 height
属性来表示,属性的值为字符串。如:
<img src="63530531.jpg" alt="一周图片精选">
上例中,img
元素拥有src
属性,表示图片来源,src
属性的值为63530531.jpg
,表示图片存放的具体位置。
以下属性是全局属性,即几乎所有 HTML 元素都支持的属性:
- accesskey 为元素指定快捷键
- class 为元素指定类型
- contenteditable 指定元素内容的可编辑性
- dir 指定元素内容的文字方向
- hidden 指定元素的可见性
- id 为元素指定唯一名称
- lang 指定元素内容的语言
- spellcheck 为元素指定拼写检查
- style 为元素指定样式
- tabindex 为元素指定 tab 顺序
- title 为元素指定提示文字
- translate 为元素内容提供指定语言的翻译内容
特殊字符
HTML 中,大于号>
、小于号<
、引号"
等一些字符,是有特殊意义的,比如 HTML 的标签就是以<
开始,以>
结束,如果直接使用,容易引起歧义。因此,HTML 中提供了输出特殊字符的机制,使用&
字符开始,以;
结束,可以用来输出特殊字符,在&
字符和;
之间,可以是名词或者数字编码。例如:"
表示引号。完整的 HTML 转义字符列表参见 http://tool.oschina.net/commons?type=2。
块元素、行内元素与行内块元素
绝大多数 HTML 元素是块元素(Block-level element)或者行内元素(Inline-level element)。这两者之间有什么不同?
块元素开始于新的一行,占据指定的宽度。块元素还可以嵌套块元素,还可以在内部使用行内元素。最常见的块元素就是段落<p>、<div>
等等。
行内元素并不会开始于新的一行。它们按照字符的顺序依次再文档中显示,如从左到右,一个挨着一个,填满所在容器的宽度后才会换行。行内元素也可以嵌套使用,但是行内元素内部不能包含块元素。常见的行内元素有<a>
、<span>
等等。
除了上述两种元素外,还有少部分元素是行内块元素(Inline-block-level element),这类元素的特点是能在一行中显示,但是可以设定宽度和高度。例如<img>
、<input>
元素。
嵌套规则
HTML 标签由块级元素和行内元素构成,块级元素主要用来表示内容的结构、布局和内容的性质,行内元素用来标记内容的语义细节。
块级元素与块级元素平级,内嵌元素与内嵌元素平级。
<div><span></span><p></p></div> //span是行内元素,p是块级元素,所以这个是错误的嵌套 <div><span></span><a></a></div> //对的
块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块元素,它只能包含其它的内联元素。
<div><span></span></div> <span><span></span></span>
有几个特殊的块级元素(h1、h2、h3、h4、h5、h6、p、dt)只能包含内嵌元素,不能再包含块级元素。
块级元素不能放在标签
p
里面。li
标签可以包含div
标签,因为li
和div
标签都是装载内容的容器。
HTML中的注释
在HTML中,可通过增加注释的方式,提高文档的易读性,甚至实现部分功能。
注释以<!--
开头,以-->
为结尾。所有包含在注释里面的内容,不会被浏览器显示出来。
<!-- 页面主体内容 -->
<!-- banner内容区域 -->
但有些浏览器会对注释内容进行解释。利用这个特征,开发人员可以对不同的浏览器进行区分处理。例如:
<!--[if IE 8 ]> <body class="ie8"> <![endif]-->
<!--[if gt IE 8]><!-->
<body>
<!--<![endif]-->
小结
- 网页由文档声明、head和body组成,head和body包含在html中。
- 元素是构成网页内容的基础单位,元素由起始标签、内容和结束标签构成。
- 没有结束标签,这一类元素被称为自闭和元素。
- 在元素的起始标签中,可以加入多个属性和值,属性和值之间用等于号
=
连接,值使用引号('
或"
)包围。 - 注释以
<!--
开头,以-->
为结尾。所有包含在注释里面的内容,不会被浏览器显示出来。