HTML 哪些元素不能有後代元素?編寫時應注意哪些?
01-06
還有哪些元素有順序要求?
對了 HTML5講的是 內容類別 。
你說的這個叫做 void element:
http://www.w3.org/TR/html5/syntax.html#void-elementsHTML5 裡面的 void element 是這些:
area, base, br, col, embed, hr, img, input, keygen, link, meta, param, source, track, wbrvoid element 寫的時候,只需要 open tag,不需要 close。
但是注意,你看到源碼裡面有的 tag 沒有 close,不一定就是 void element,因為還有一個東西叫做 tag omission: 8 The HTML syntaxHTML標籤還是蠻靈活的。至於哪些元素不能有後代元素,我也無法全部所全,這方面知識我想查閱W3C有關於HTML方面的規範會更全面,也更權威。我一般情況下行內元素標籤不套塊元素標籤。
除了void element之外,你還問了哪些標籤是必須按照順序的,我舉例幾個:html-&>head-&>body
table-&>thead-&>tbody-&>tr/td-&>tfoot
ul-&>lidl-&>dt-&>dd等等。。在我的知識領域,只有單個標籤的有這種限制,比如 &
&。至於注意事項,就兩點:
1,別拼錯標籤名。之前見過一個問題,那哥們遇到了很奇葩的 HTML 問題,瀏覽器渲染多了很多空白,還到處問哪裡出錯了。其實是標籤名寫錯了。
2,某些標籤是沒法相互嵌套的。比如:a 標籤下面不能嵌套 a,form 標籤裡面不能嵌套 form。此外就是 inline 屬性的標籤不能嵌套 block 屬性的標籤。比如:span 包裹一個 p 標籤。當然也有萬能標籤,a 雖然是 inline 屬性,但是除了 a 之外,隨便套。div 是 block 的萬能套標籤,span 是 inline 屬性的無意義標籤。如果你要用 html 結構模擬什麼東西,最好就是用一大群的 span 來模擬,這樣模擬出來的東西,無論放到 inline 還是 block 標籤下面都 OK。最近在把自家產品做改版需要一套代碼覆蓋全部終端
需要屏幕閱讀
需要盲操才發現w3c真是目光高遠啊不考慮語義還是圖樣不好意思,我不會這個問題~
因為我寫的時候,都是無腦疊加div。除了文字,鏈接,控制項,其他所有都是用div~然後inline元素,基本不套div(也就是block元素),我的習慣就是,所有inline元素都是最裡面的元素,我剛才嘗試了下,好像td這種inline標籤里嵌套div會出問題的。所以把所有的inline元素都放到black裡面~ 終歸不會出現什麼問題把。假如哪裡錯了,指出~ 謝謝。推薦閱讀:
※如果網頁沒有 CSS 會怎麼樣?
※有哪些在伺服器端給網頁截圖的辦法?
※知乎上很多前端大佬說,要做好前端的話html和css基礎必須夯實。那麼,達到什麼水平才能叫基礎夯實呢?