首先先羅列一下html的巢狀規則。
塊能包含塊和內聯,內聯只能包含內聯
· 塊元素可以包含內聯元素或某些塊元素,但內聯元素卻不能包含塊元素,它只能包含其它的內聯元素
標題和段落中不能包含塊
· 有幾個特殊的塊級元素只能包含內嵌元素,不能再包含塊級元素,這幾個特殊的標籤是
· h1、
h2、h3、
h4、h5、
h6、p、
dt 塊與內聯不能並列
· 塊級元素與塊級元素並列、內嵌元素與內嵌元素並列。
注意:
1. li是塊級元素,可以巢狀塊級元素(包括ul)。
2. 有些標籤是固定的巢狀規則,比如ul包含li、ol包含li、dl包含dt和dd等等。
3. 不可以巢狀自己,w3cschool上面有說明。
4. 這裡說明一下,雖然可以可以使用display設定block和inline,但以此來定義巢狀關係很顯然不嚴謹。(不知道搜尋引擎會不會抓取css內容?)
巢狀錯誤可能引起的問題
1. 元素開始與結束標籤巢狀錯誤,頁面可以在大部分瀏覽器被正常解析,ie9會出現解析錯誤
2. 在元素內嵌入等元素造成所有瀏覽器的解析錯誤
3. 在~元素內嵌入等元素所有瀏覽器可以解析正常
4. 在元素內嵌入元素會導致所有瀏覽器的解析錯誤(a也不可巢狀button,input等互動元素)
5. 在列表元素等插入非列表兄弟元素會導致ie6\ie7的解析錯誤
總結,雖然可以通過css樣式來達到巢狀效果,進行標籤巢狀,但是為了提高瀏覽器的渲染效率,我們應該盡少的巢狀標籤,扁平化。
HTML巢狀規則
先說基礎,html標籤有兩類 1 塊級元素 div h1 h6 address blockquote center dir dl dt dd fieldset form hr isindex menu noframes noscript ol p pre table ul 特點 總是在新行上開始,高...
HTML的巢狀規則
塊元素 block 一般用來搭建 架構 布局 承載內容 像這些大體力活都屬於塊級元素的。行元素 inline 一般用在 內容之中的某些細節或部位,用以 強調 區分樣式 上標 下標 錨點 等等。1 form表單不能直接包含input元素。原因在於input屬於行內元素,form只能包含塊元素。2 不能...
HTML 的巢狀規則
標籤是文字標籤,一般巢狀用文字。1.a標籤最好不要巢狀塊級元素,可以巢狀內聯元素,但是不能巢狀a標籤和input之類的標籤。能巢狀的標籤像,等等。2.ul和ol的子元素不能是別的元素只能是li,不能是別的比如div等,但是li中可以是div,要不然在ie6和7下回把非li解析到li的內部。這個切記沒...