html标签嵌套规则

咱们知道js代码若是有语法错误,浏览器会拒绝执行并报错。可是!浏览器遇到不合法的html时不会报错,会想方设法地把它渲染出来。html

XHTML 标签的嵌套规则了:浏览器

1. 块元素能够包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素:spa

<div><h1></h1><p></p></div> —— 对
<a href=”#”><span></span></a> —— 对
<span><div></div></span> —— 错code

2. 块级元素不能放在<p>里面:htm

<p><ol><li></li></ol></p> —— 错blog

<p><div></div></p> —— 错class

3. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:容器

h一、h二、h三、h四、h五、h六、p、dt。渲染

4. li 内能够包含 div 标签 —— 这一条其实没必要单独列出来的,可是网上许多人对此有些疑惑,就在这里略加说明:语法

li 和 div 标签都是装载内容的容器,地位平等,没有级别之分(例如:h一、h2 这样森严的等级制度^_^),要知道,li 标签连它的父级 ul 或者是 ol 均可以容纳的,为何有人会以为 li 恰恰容纳不下一个 div 呢?别把 li 看得那么小气嘛,别看 li 长得挺瘦小,其实 li 的胸襟很大滴……

5. 块级元素与块级元素并列、内嵌元素与内嵌元素并列:

<div><h2></h2><p></p></div> —— 对

<div><a href=”#”></a><span></span></div> —— 对

<div><h2></h2><span></span></div> —— 错

 

整体来讲:块级元素能嵌入内联元素和部分块级元素,内联元素只能嵌入内联元素。

一、只能嵌入内联元素的块级元素:h1~h6, p, dt

二、li元素能够嵌入ul, ol, div

 

下面有几个典型的错误:

1.开始与结束标签嵌套错误;

 <div><h2>标题</div></h2>

2.p元素嵌套div

<p>
    <div>好的</div>
</p>

3.列表元素li的兄弟元素为div

<ul>
            <li>天上下凡三圣母</li>
            <div>沉香日夜哭着要寻母</div>
        </ul>

4.a元素嵌套a元素

<a href=""><a href="">连接</a></a>

5.h元素嵌套div元素

<h1><div>标题</div></h1>