嵌套HTML定义列表(<dl>)?</dl>是否正确

时间:2008-12-23 15:10:26

标签: html markup semantics

嵌套定义列表在语义上是否正确,或者它们应该只是“名称/值对的平面列表”。

The specs似乎没有禁止它。

继续this question

5 个答案:

答案 0 :(得分:38)

如果只有<dd>包含嵌套列表,那么规范似乎允许它。规范声明<dt>是内联元素,因此它不能包含嵌套列表。 <dd>是一个块元素,因此其中一个内部列表很好。

答案 1 :(得分:4)

不确定。嵌套DL没有问题。您可以在语义上拥有“子定义。”

答案 2 :(得分:0)

有趣的问题。

确实,DefLists旨在表示键和值,但这些的多样性不是1而是1+。如果允许这种复杂性,并且记住dt是内联的,那么我认为用其他事物树来表示定义某些事物时没有语义问题。

答案 3 :(得分:0)

我通过用无序列表或有序列表替换嵌套的定义列表来解决了这个问题,例如

<dl>
  <dd>Black hot drink</dd>
  <ul>
    <dd>White cold drink</dd>
    <ol>
      <dd>Red sweet drink</dd>
    </ol>
  </ul>
</dl>

答案 4 :(得分:-4)

如果它适用于所有浏览器,那就去做吧。

我知道这可能会引起争议,而且很多人可能会告诉你这不是应该使用的方式。网页设计的不成文规则,比如几乎可以使用任何列表,都是人们决定做的事情。没有理由你应该使用float(其目的是在一个文本块中浮动图像)来布局网站上的每个小细节。但如果你试图使用表格,那么你在泡沫时代之前显然是个白痴,你根本不知道如何设计。

所以,做你想做的事情,不要因为解决问题而使事情变得更复杂。