2014-10-20 45 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屬性。大多數軟件忽略它。此外,如果列表已經正確編寫,「名稱」和「值」之間的關聯足夠明顯,沒有這種標記。

相關問題