2014-10-20 42 views
0

HTML5有很好的描述标签。 w3.org给出the following example描述列表:分组<dt>及其“子”<dd>?

<dl> 
<dt><dfn>happiness</dfn></dt> 
<dd class="pronunciation">/'hæ p. nes/</dd> 
<dd class="part-of-speech"><i><abbr>n.</abbr></i></dd> 
<dd>The state of being happy.</dd> 
<dd>Good fortune; success. <q>Oh <b>happiness</b>! It worked!</q></dd> 
<dt><dfn>rejoice</dfn></dt> 
<dd class="pronunciation">/ri jois'/</dd> 
<dd><i class="part-of-speech"><abbr>v.intr.</abbr></i> To be delighted oneself.</dd> 
<dd><i class="part-of-speech"><abbr>v.tr.</abbr></i> To cause one to be delighted.</dd> 
</dl> 

,描述在其中<dd>元件可以用作“经过内部dl元件dtdd元件”的上下文。

这对我(一个完整的初学者)奇怪:不应该这些dd元素有些属于它们所描述的dt?因为<dt>happiness</dt>和​​确实是彼此相关的,一个描述另一个?通过dtdd对齐而没有结构,告诉具体的dd描述什么的唯一方法是找到最后的dt。 “?我说得对这种担心:”我会觉得喜欢的东西(di每个项目)

<dl> 
    <di> 
    <dt><dfn>hapiness</dfn></dt> 
    <dd class="pronunciation">/'hæ p. nes/</dd> 
    <dd>The state of being happy</dd> 
    </di> 
</dl> 

安全多了。虽然我很想问,我的问题是:

  • 是什么在html5中使用dl时的约定?他们是否以某种方式将<dt><dd>分组,或者它是否正好?
  • 如果我将它们分组(如上所述,但使用标准标签),是否有任何标签可以在语义上使用?
+1

'

'是HTML 4.1(可能更早),而不是HTML 5;但是,否则,不,除'隐式'之外没有其他分组(所有'
'元素属于之前的'
')。 – 2014-10-20 05:30:24

+1

请注意,您也可以运行'

'元素。后面的“
”元素“属于”所有那些“
”元素,而不仅仅是最后一个元素。很多人都希望有一个''元素,但它不会添加新的语义,所以它不是一个真正的HTML问题。 – Alohci 2014-10-20 10:17:45

+0

@DavidThomas - '

'自HTML 2.0发布之前就已成为HTML的一部分。 – Alohci 2014-10-20 10:28:58

回答

-1

据我所知 - a <dd>是其前面的<dt>的定义。 技术上你不会有多于一个<dd><dt>。 做这样的事情:

<dl> 
    <dt>happiness</dt> 
    <dd> 
    <span class="pronunciation">/'hæ p. nes/</span> 
    <span class="definition">The state of being happy</span> 
    </dd> 
</dl> 

然后相应的样式跨度。

编辑:

我的道歉,因为大卫·托马斯指出,它是好的,有一个以上的<dd><dt>http://html5doctor.com/the-dl-element)。 我认为我在这里的主要想法是,如果<dd>被拆分为如上所述的部分,我仍然认为它会更整洁,并且更容易风格化。

+1

不,你可以有一个或多个'

'元素与任何给定的'
'元素相关(我认为你的意思是'在'之前'而不是'高级')。 – 2014-10-20 06:28:41

+0

正确 - 我的意思是前面的:) - 另外,你是对的 - 你可以有多个

标签 - 我只是查了一下。不过,我仍然认为将
分成几个部分会更简单。 – PavKR 2014-10-20 06:34:53

+0

向下选民,请解释一下? – PavKR 2014-10-20 19:49:29

1

dl元素从早期开始就是HTML的一部分(从HTML 2.0开始正式推出),它一直被模糊地定义。名义上称为“定义列表”,它一般被解释为“描述列表”或者真正的“关联列表”。它将dt元素中的“名称”与其后的dd元素的内容关联起来,直到接下来的dt。如果有几个连续的dt元素,则它们全都与以下dd元素相关联。

关联(分组)在description of dl中定义,但它是“纯粹语义的”;它没有任何含义,因为dl语法只允许dtdd作为子节点(和script,但这没有帮助),所以甚至不能使用某些中间标记来明确。

结论取决于您期望使用的关联。如果你真的需要一个组的容器,只需使用一些其他的标记,让你投入你需要的标记。如果您希望该协会是相关的辅助软件,你还不如建议通过以下例子上an MDN page on ARIA:

<dl> 
    <dt id="anathema">anthema</dt> 
    <dd role="definition" aria-labelledby="anathema">a ban or curse solemnly pronounced 
                by ecclesiastical authority 
                and accompanied by excommunication</dd> 
    <dd role="definition" aria-labelledby="anathema">a vigorous denunciation : cursor</dd> 

    <dt id="homily">homily</dt> 
    <dd role="definition" aria-labelledby="homily">a usually short sermon</dd> 
    <dd role="definition" aria-labelledby="homily">a lecture or discourse on or of a moral theme</dd> 
</dl> 

然而,这样的加标记的实用性是非常小的可以考虑使用ARIA属性。大多数软件忽略它。此外,如果列表已经正确编写,“名称”和“值”之间的关联足够明显,没有这种标记。

相关问题