在XHTML 的語言裡,我們都知道:ul 標籤包含著li、dl 標籤包含著dt 和dd-這些固定標籤的嵌套規則十分明確。但是,還有許多標籤是獨立的,它們沒有被捆綁在一起,比如h1、div、p……那麼這些標籤的嵌套規則到底是怎樣的?今天就來說說這個話題。
提到XHTML 標籤的嵌套規則,我們先得知道有這麼二類XHTML 標籤,一類叫做塊級元素(block ),一類叫做內嵌元素(inline,也有許多人叫它:內聯、行內、線級等)。
塊級元素和內嵌元素的劃分標準很簡單,請把下面二行代碼放進body 標籤裡:
<div style=border: 1px solid red;>div1</div>
<div style=border: 1px solid red;>div2</div>
瀏覽器的呈現效果:
div1div2頁面呈現的這二個div 佔據了二行空間,除非讓它們浮動(float)或是進行其他設置,否則誰都不挨著誰,它們都很霸道的佔領屬於自己的那一行空間-但凡看到某個標籤有此現象,你就可以叫它:塊級元素(block) ;
再把下面二行代碼也放進body 標籤裡:
<span style=border: 1px solid red;>span1</span>
<span style=border: 1px solid red;>span2</span>
瀏覽器的呈現效果:
span1 span2
這一次,兩個span 並列在一行,它們之間睦鄰友好、親切和諧……像這樣的標籤行為,我們可以稱它們為:內嵌元素(inline) ;
塊級元素和內嵌元素的區別: · 塊級元素一般用來搭建網站架構、佈局、承載內容……像這些大體力活都屬於塊級元素的,它包括以下這些標籤:div、ul、li、dl、dt、dd、h1~h6、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. 有幾個特殊的塊級元素只能包含內嵌元素,不能再包含塊級元素,這幾個特殊的標籤是:h1、h2、h3、h4、h5、h6、p、dt。
4. li 內可以包含div 標籤-這一條其實不必單獨列出來的,但是網上許多人對此有些疑惑,就在這里略加說明:li 和div 標籤都是裝載內容的容器,地位平等,沒有級別之分(例如:h1、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> - 錯