3.2 标签语法

原创声明。未经许可,不得转载,作者:小步教程。

标签具有语义与默认样式,样式与语义一致。例如h1表示一级标题,p表示段落,“一级标题”、“段落”就是它们的语义;h1具有较大字体且加粗等默认样式,p具有一定段落间距。


3.2.1 标签基本语法

标签分双标记标签与单标记标签。

(1)双标记标签

<开始标签>标签内容体</结束标签>

标签名不区分大小写,通常小写。

示例代码

<h1>小步教程一级标题</h1>
<p>小步教程 xiaobuteach.com 这是很长的一个段落这是很长的一个段落这是很长的一个段落</p>

h1与p属于双标记标签。

img


(2)单标记标签

单标记标签只有开始标签没有结束标签。包含两种写法,推荐无斜杠写法。

<标签>

<标签 />

示例

小步教程 xiaobuteach.com<br>
小步教程<br />
<hr>
<hr />

br表示换行,hr表示水平线,两者属于单标记标签。

img


(3)什么时候使用双标记标签?什么时候使用单标记?

由标签本身决定,HTML规范规定一个标签属于单标记还是双标记。

MDN查看单双标记标签。标签的帮助页“技术总结(技术概要)”—“标签省略”。

MDN查询hr如下,表示是单标记标签。

标签省略: 必须有开始标签,不能有结束标签。

MDN查询div如下,表示是双标记标签。

标签省略: 不允许,开始标签和结束标签都不能省略。

3.2.2 GramError001 双标记标签写成单标记标签

错误示例代码如下,h1双标记标签错写成单标记标签。

<body>
    <h1/>小步教程一级标题
    <p>小步教程 xiaobuteach.com 这是很长的一个段落</p>
</body>

浏览器的解析规则与解析结果是什么?当一个双标记标签缺少结束标记时,会在它的父元素的内部结束位置补上该元素的结束标记,分析的解析结果如下。

<body>
    <h1>小步教程一级标题
        <p>小步教程 xiaobuteach.com 这是很长的一个段落</p>
    </h1>
</body>

查看解析元素结构,与前面分析一致。

img


3.2.3 GramError002 单标记标签写成双标记标签

单标记标签写成双标记标签。

<p>小步教程 xiaobuteach.com<br></br>这是很长的一个段落</p>

两个br并不是真正的一对,浏览器会解析成两个换行。查看解析元素结构。

img

大多数单标记标签错写会忽略它的结束标签,错误代码如下。

<hr></hr>
<input></input>

浏览器解析结果

<hr>
<input>

3.2.4 标签嵌套

内部元素通常缩进,元素结构层次更加清晰,提高代码可读性。

示例1:两层嵌套。父元素包含多个子元素。

<div>
    <h1>小步教程一级标题</h1>
    <p>小步教程这是很长的一个段落</p>
    <p>www.xiaobuteach.com这是很长的一个段落2</p>
</div>

示例2:三层嵌套。两个p元素处于第三层。类似能够更多层嵌套。

<div>
    <h1>小步教程一级标题</h1>
    <div>
        <p>小步教程这是很长的一个段落</p>
        <p> www.xiaobuteach.com这是很长的一个段落2</p>
    </div>
</div>

3.2.5 GramError003 嵌套时双标记标签漏写结束标签

错误原因:嵌套时双标记标签漏写结束标签,实际项目经常出现此场景。示例代码如下。

<h1>小步教程一级标题

解析规则与解析结果与前面介绍的双标记标签写成单标记标签相同。解析结果如下。

<div>
    <h1>小步教程一级标题
	    <div>
	        <p>小步教程这是很长的一个段落</p>
	        <p> www.xiaobuteach.com这是很长的一个段落2</p>
	    </div>
    </h1>
</div>

3.2.6 GramError004 完全不规范HTML代码

完全不规范HTML文件示例代码。

<p>小步教程 xiaobuteach.com

缺少html、head、body等基本元素结构,缺少p的结束标签。解析结果如下。

img

浏览器自动按标准结构补齐元素。


3.2.7 HTML注释

语法

<!-- 注释内容 -->

注释内容用于对HTML代码进行说明,提高代码可读性;可以注释单行或多行。

注释的公开性。用户可通过两种方式查看到注释:查看网页源代码、开发者工具。

img


3.2.8 浏览器解析元素规则

HTML代码不规范时页面显示不会报错,解析与显示结果可能与期望不一致。尽量按规范编写标签代码,使用开发者工具调试定位问题,总结不规范代码的解析规则,快速解决问题。

(1)解析结果符合HTML标准结构。如果缺少html、head、body元素,会自动补齐。

示例,整个HTML文件的代码如下,查看解析结果仍包含html、head与body。

小步教程 xiaobuteach.com

(2)整体是标准树状结构,从外到内依次嵌套。

(3)如果双标记标签如果缺少结束标记,会自动补齐,补齐位置在父元素的内部结束位置。

(4)如果单标记标签写成双标记标签,可能被解析成两个标签,可能忽略结束标签。

(5)如果嵌套错乱,首先按照第3条规则处理,补齐缺少结束标签,多余结束标签被忽略。


3.2.9 开发者工具调试元素思路

浏览器处理HTML代码包括三个步骤:加载源代码、按照解析规则解析结果、页面显示。

当标签代码错误时,调试方法与上述步骤相反:首先观察页面显示不正常,然后快速定位到解析结果的问题,根据解析结果并结合浏览器解析规则快速定位源代码问题。