2010-07-18 66 views
7

請問定義清單<dl>要求每個<dd>都會有<dt>標籤嗎?請問定義清單<dl>要求每個<dd>都會有<dt>標籤嗎?

實施例:

選項1每個<dd>存在他的<dt>也如果<dt>空:

<dl> 
<dt></dt> 
<dd>value1</dd> 
<dt>name2</dt> 
<dd>value2</dd> 
</dl> 

選項2每個<dd>不存在他的<dt>如果<dt>空:

<dl> 

<dd>value1</dd> 
<dt>name2</dt> 
<dd>value2</dd> 
</dl> 


編輯:

舉例時DT可以是空的(它的構建由Zend_Form的汽車 - 不能更改):

<dl> 

<dt><lable>Last Name:</label></dt> 
<dd><input type='text' size='30' /></dd> 
<dt><lable></label></dt> 
<dd><input type='submit' size='30' value='submit'/></dd> 
<dt><lable>Name:</label></dt> 
<dd><input type='text' size='30' /></dd> 

</dl> 

感謝

回答

7

HTML 4不強制執行此操作,也不是XHTML 1.1。他們只需要<dl>只包含一個或多個<dt><dd> s。

然而,HTML 5 has stricter requirement

零或多個:(一個或多個<dt>元件,隨後一個或多個<dd>元素)

因此,你的選項2不會驗證在HTML 5.

option1仍然沒問題,因爲<dt>可以包含任何「短語內容」,包括空白內容。

1

該標籤與 一起使用(定義爲 定義列表)和 (描述列表中的項目)。
複製自W3。

2

A dl只包含dd s在W3C validator驗證,所以我想沒關係。

W3C HTML 4.01參考:10.1 Introduction to lists

工作例如:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
<title>Untitled</title> 
</head> 
<body> 
    <dl> 
    <dd>value1</dd> 
    <dd>value2</dd> 
</dl> 
</body> 
</html> 
1

它是有效的,但我不明白爲什麼你會永遠想這樣做。

請注意,你的第二個例子只適用於第一個項目;後面沒有缺少dt的東西,因爲多個dd項目可以申請單個dt

+0

例爲我的情況下更好地解釋:

名稱:
Yosef 2010-07-18 10:11:10

3

根據the HTML 4 DTD

<!ELEMENT DL - - (DT|DD)+    -- definition list --> 

這意味着你可以混合和匹配。

下面是各種方式的使用定義列表一個很好的概述:

+0

+1,這是最權威的資源。有解釋DTD語法的好介紹嗎? – 2010-07-18 10:07:31

+0

@Pekka:直接和充足 - http://en.wikipedia.org/wiki/Document_Type_Definition#Element_type_declarations ;-) – Tomalak 2010-07-18 10:22:21