将定义列表与有序列表组合的正确方法是什么?

时间:2016-07-30 05:53:40

标签: html html5

我想制作一个有序的定义列表。我应该在<ol>中嵌套<dl>,还是反过来?

<h4>Bike Descriptions</h4>
<dl>
    <ol>
        <li>
            <dt>Giant Bikes</dt>
            <dd>Bikes that are very sturdy and reliable.</dd>
        </li>
        <li>
            <dt>Walmart Bikes</dt>
            <dd>Bikes that are crummy and heavy.</dd>
        </li>
    </ol>
</dl>

<dl>嵌套在<ol>内,甚至嵌入每个<li>内?

The docs don't seem to say.

3 个答案:

答案 0 :(得分:2)

您的示例不是有效的HTML标记。也许你想做这样的事情。

<h4>Bike Descriptions</h4>    
<ul>
  <li>
    <dl>
      <dt>Giant Bikes</dt>
      <dd>Bikes that are very sturdy and reliable.</dd>
    </dl>
  </li>
  <li>
    <dl>
      <dt>Walmart Bikes</dt>
      <dd>Bikes that are crummy and heavy.</dd>
    </dl>
  </li>
</ul>

然后,您可以为CSS添加样式以修复布局。

答案 1 :(得分:2)

根据that documentation<dt>可能包含的唯一元素是<dd>dl

  的 Content model      

零个或多个组,每个组由一个或多个dt元素组成,后跟一个或多个dd元素,可选择与script-supporting elements混合。

因此,您的示例代码是无效的HTML。嵌套olul / ol的唯一有效方法是ul / li&gt; dl&gt; dt&gt; dd + <h4>Bike Descriptions</h4> <ol> <li> <dl> <dt>Giant Bikes</dt> <dd>Bikes that are very sturdy and reliable.</dd> </dl> </li> <li> <dl> <dt>Walmart Bikes</dt> <dd>Bikes that are crummy and heavy.</dd> </dl> </li> </ol>

&#13;
&#13;
    private ImageLoader imageLoader1;
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我认为 HTML 没有用于有序定义列表的元素。

您可能会考虑只使用一个 dl 元素,然后按照您想要的方式对其名称-值组进行排序。 (例如,字典中的单词通常没有编号,只是按字母顺序排列。)

如果您真的认为您必须对 dl 元素的每个名称-值组进行编号,那么我想我可能不同意您的观点并请求您重新考虑,因为我想不出任何示例我认为这样做是一种很好的风格。如果可以,请随意分享。但我倾向于keep it simple, stupid (KISS);我认为少即是多;可能还有you aren't gonna need it (YAGNI)。但是,如果(即使经过重新考虑)您仍然想这样做,那么您可以考虑using CSS counters

根据WHATWG: HTML Standard: The dl element

<块引用>

组列表的顺序以及每个组内的名称和值的顺序可能很重要。

为了注释具有 microdata 属性的组,或适用于整个组的其他 global attributes,或仅用于样式目的,dl 元素中的每个组可以包含在div 元素。这不会改变 dl 元素的语义。