XHTML 的标签有许多:div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、span、 strong……运用这些标签搭建页面结构时,可将它们无限嵌套;但嵌套也需一定规则,不能胡乱嵌套—— XHTML必竟不是XML。
XHTML里:ul 标签包含着 li,dl 标签包含着dt和dd——这些固定标签的嵌套规则十分明确。但还有许多标签是独立的,它们未被捆绑在一起,如h1、div、p……
XHTML标签的嵌套规则:
1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素:
<div><h1></h1><p></p></div> —— 对
<a href=”#”><span></span></a> —— 对
<span><div></div></span> —— 错
2. 块级元素不能放在<p>里面:
<p><ol><li></li></ol></p> —— 错
<p><div></div></p> —— 错
3. 有几个特殊的块级元素只能包含内联元素,不能再包含块级元素,这几个特殊的标签是:
h1、h2、h3、h4、h5、h6、p、dt。
4. li 内可以包含 div 标签 ——li 和 div 标签都是装载内容的容器,地位平等,没有级别之分(例如:h1、h2 这样森严的等级制度),li 标签可容纳它的父级 ul 或者是ol,div
5. 块级元素与块级元素并列、内嵌元素与内嵌元素并列:
<div><h2></h2><p></p></div> —— 对
<div><a href=”#”></a><span></span></div> —— 对
<div><h2></h2><span></span></div> —— 错
注意:在一次开发中,p标签连续嵌套后,浏览器解析时,自动添加了一个p标签,造成css样式失效。
虽然块级元素与内联元素可互转,但最好还是遵循XHTML标签的基本嵌套规则,避免不可知的问题产生。