做導航欄為什麼用ul>li,而不用dd dt dl?


@丁小倪 的說法有點偏激了。& 元素是區塊內容(sectioning content),也就是會最終影響文檔大綱(outline)生成的元素。它僅僅反映其內容包含導航,但並沒有表達其內容的形式。導航內容可以是一個鏈接的列表,也可以是一段自然文本中內嵌了導航鏈接。

按 W3C 對 & 元素的描述(http://dev.w3.org/html5/spec/the-nav-element.html#the-nav-element)中給出的適用場景例子,我簡化一下,用法可以是:

&  &   &&Home&   &&About&&   &&Links&&  & &

也可以是:

&  &Navigation&  &Welcome to my website. To see latest blog posts, please go to &my blog&. You can find my books and papers in the &publication& section. If you are interested in my work, please contact me by fill in the contact form &here&.& &

如果內容是列表,那用 ul&>li 的方式也是很合適的,並不能說濫用。一個列表並不會因為它被放在 & 中就不是列表了,這是內容本質的問題。& 相比 & 從語義上來說,抽象層次更高,因為它甚至已經與內容的組織形式解耦了。

而對於 &、&、&,你可以把它看成一個名值對的列表,常與 & 元素一起使用,比較合適的場景是元數據的表達、詞典的詞條等等。@趙望野 的說法也有點問題,& 與 & 並不需要成對出現,它們是多對多的映射(http://dev.w3.org/html5/spec/the-dl-element.html#the-dl-element)。可以看下 HTML5 Doctor 上的這篇文章:http://html5doctor.com/the-dl-element/。

要想對 HTML 元素有更深入的理解,我個人比較推薦結合 HTML5 Doctor 上的文章和 HTML5 規範來閱讀。


比較贊同 @顧軼靈的說法。dl dt dd 是名值對,適用場景如:課程表、日程表等有值的列表。而導航本身就是一個包含多個鏈接的無序列表,是符合ul&>li語義的。html5中&標籤對於導航列表的語義化更準確,詳見 @一絲html導航菜單為什麼都用li+a標籤,而不直接用a標籤,或者用nav+a標籤,html5中導航菜單該怎樣寫?


其實導航用ul&>li本身就是個錯誤,根本不是列表項目,就是個鏈接而已。國內已經用泛濫了,好多新人也被誤導,不要想那麼複雜。

html5的&才是導航標籤語義化上真正的實現,nav&>a足矣。


從語義化的角度考慮,dl(Definition Lists) 標籤中的 dt 和 dd 是要成對出現的。Dt 是 Definition Term 即定義,dd 是 Definition Description 即解釋,所以語義上並不符合「導航」。另外從頁面結構考慮,成對出現的形式顯然也不符合導航的常見形式。


先發個link

語義化你的HTML標籤和屬性

http://bbs.blueidea.com/thread-2658231-1-1.html

dl就是「定義列表」。比如說詞典裡面的詞的解釋、定義就可以用這種列表。

所以不適合做列表。另外用dl dt dd的話結構怎麼辦。 把dl當dd一樣用?如果無需考慮代碼的可維護性我覺得簡單的導航就用p&>a就合適了.

如果用html5簡單的就直接nav&>a了


前面幾位提到的nav&>a是html5

才有的,兼容性不太好吧,必須IE8以上,不含IE8。ul&>li並不算濫用,還是有普適性和便捷性的。


個人看法:&&xxx&&&&zzz&&其實這樣足夠做一個nav bar了。沒什麼不可以的。當然,如果導航很複雜,需要用到一些複雜技巧,則用ul/li列表來生成級聯什麼的比較方便。


導航欄裡面的element都是無序的list item時應該用ul&>li, 如果需要解釋可以用dl&>dt&>dd(誰的導航欄又需要有解釋呢?又不是生詞表)。

同意大家說的直接nav&>a。


ul li 就是無序列表,導航本身是可以用無序列表來表現的。dl dt dd,這種定義列表的方式,用在這裡對於語義化標籤不是很恰當。


推薦閱讀:

如何系統的學習做網站?
自問自答:零基礎自學編程,耗時3-6個月能否入門編程並找到一份編程相關工作?
AR技術可以通過HTML5實現嗎?不通過APP?
如何看待《HTML5 定稿:手機 App 三年內將徹底消失?》
開源HTML5拓撲圖繪製工具?

TAG:HTML | CSS | HTML5 | DivCSS |