1.a标签最好不要嵌套块级元素,能够嵌套内联元素,可是不能嵌套a标签和input之类的标签。能嵌套的标签像,等等。css
2.ul和ol的子元素不能是别的元素只能是li,不能是别的好比div等,可是li中能够是div,要否则在ie6和7下回把非li解析到li的内部。这个切记没有办法修复!浏览器
3.p标签不能嵌套块级元素甚至不能嵌套p元素,只能嵌套内联元素,否则对p嵌套的块级元素设置css不起做用。4.button里面不要嵌套a标签,否则在js里面会有两个事件,还有就是button里面放img要记得给图片添加alt属性。架构
5.dt标签里面不能嵌套块级元素,只能嵌套内联元素。可是dd能够嵌套块级元素。布局
这个也许平时人们不注意,可是很是有用,尤为是当你实在找不到缘由为何网页显示错误的时候。网站
XHTML 的标签有许多:div、ul、li、dl、dt、dd、h1~h六、p、a、addressa、span、 strong……咱们在运用这些标签搭建页面结构的时候,是能够将它们无限嵌套的,可是,嵌套也须要有必定规则,不能任由本身的我的习惯胡乱嵌套——XHTML 必竟不是 XML。spa
在 XHTML 的语言里,咱们都知道:ul 标签包含着 li、dl 标签包含着 dt 和 dd——这些固定标签的嵌套规则十分明确。可是,还有许多标签是独立的,它们没有被捆绑在一块儿,好比 h一、div、p……那么这些标签的嵌套规则究竟是怎样的?今天就来讲说这个话题。事件
提到 XHTML 标签的嵌套规则,咱们先得知道有这么二类 XHTML 标签,一类叫作 块级元素(block),一类叫作 内嵌元素(inline,也有许多人叫它:内联、行内、线级等)。图片
块级元素 和 内嵌元素 的划分标准很简单,请把下面二行代码放进 body 标签里:input
浏览器的呈现效果:容器
页面呈现的这二个 div 占据了二行空间,除非让它们浮动(float)或是进行其余设置,不然谁都不挨着谁,它们都很霸道的占领属于本身的那一行空间——但凡看到某个标签有此现象,你就能够叫它:块级元素(block);
再把下面二行代码也放进 body 标签里:
<span style=”border: 1px solid red;”>span1</span>
<span style=”border: 1px solid red;”>span2</span>
浏览器的呈现效果:
这一次,两个 span 并列在一行,它们之间睦邻友好、亲切和谐……像这样的标签行为,咱们能够称它们为:内嵌元素(inline);
块级元素和内嵌元素的区别:
· 块级元素
通常用来搭建网站架构、布局、承载内容……像这些大致力活都属于块级元素的,它包括如下这些标签:
div、ul、li、dl、dt、dd、h1~h六、p、address……
· 内嵌元素
通常用在网站内容之中的某些细节或部位,用以“强调、区分样式、上标、下标、锚点”等等,下面这些标签都属于内嵌元素:
a、span、strong、sub、sup、img……
· 块元素 和 内嵌元素
是能够互相转换的,转换的代码以下:
display: block;
display: inline;
· 块元素 和 内嵌元素 对于 CSS 的调用规则是不同的(这篇文章讨论的是标签嵌套,因此对这个知识点不展开说明)。
简单认识了块元素和内嵌元素之后,下面就能够罗列 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. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:
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> —— 错