2013-06-24 52 views
13

這些代碼片斷在語法上是否正確?我正在使用第一個代碼段來構建一個導航(在ul中嵌套標題標籤)。如果它是錯誤的或者這是一個壞習慣有什麼缺點。在裏面嵌套html標籤而不是li

<ul class="site-title left"> 
    <header> 
    <li><h1>site title</h1></li> 
    </header>       
</ul> 

<ul class="site-title left"> 
    <span> 
    <li><h1>site-title</h1></li> 
    </span>       
</ul> 
+1

缺點是,它可能無法正常工作或在不同的瀏覽器外觀不同 –

+1

我建議:同樣'<李班=「頭」>' –

+1

:檢查的有效性語法,[W3C Validator](http://validator.w3.org/#validate_by_input)是你的朋友。 – lime

回答

17

沒有

按照specthe ul element是:

UI元素代表項目清單,對其中階物品並不重要 - 即更改訂單的位置不會實質性地改變文件的含義。

該列表中的項目是ul元素的li元素子節點。

所以UL元素的孩子一定li元素。

更具體地說,它說,ul標籤下:

內容模型:

Zero or more li elements. 

然而,完全合法的事情:

<ul class="site-title left"> 
    <li><span><h1>site-title</h1></span></li> 
</ul> 
+2

驚人的你可以在規格中找到,呃?我發現這個版本更容易處理這種事情:http://dev.w3.org/html5/markup/ul.html –

+2

最近幾年來一直在努力使spec更具可讀性。最終目標是讓開發人員和實現者(比如瀏覽器供應商)能夠輕鬆訪問這些信息。:)感謝dev.w3.org鏈接,它們更具可讀性,我只是習慣於閱讀夜總會: )我會更新鏈接。 –

+0

他們在規格方面做得很好,最新的規格非常清晰,簡潔並且可讀。 –

1

驗證輸出:1錯誤

錯誤25行,第51列:元素h1不允許作爲此上下文中元素跨度的子元素。 (從這個子樹抑制進一步的錯誤。)

  <li><span><h1 class="Tabellenkopf">Menü</h1></span></li>