2010-07-18 8 views
7

La liste de définitions <dl> exige-t-elle que chaque <dd> comporte l'étiquette <dt>?La liste de définitions <dl> exige-t-elle que chaque <dd> ait une étiquette <dt>?

Exemple:

option1 pour chaque <dd> existe son <dt> même si <dt> vide:

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

option2 pour chaque <dd> ne pas exister son <dt> si <dt> vide:

<dl> 

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


Edit:

Exemple quand dt peut être vide (sa construction par auto Zend_Form - ne peut pas être changé):

<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> 

Merci

Répondre

7

HTML 4 n'applique pas cela, pas plus que XHTML 1.1. Ils ne nécessitent que <dl> contient seulement un ou plusieurs <dt> ou <dd> s.

Cependant, HTML 5 has stricter requirement:

zéro ou plus: (un ou plusieurs éléments <dt>, suivi d' un ou plusieurs <dd> éléments)

Par conséquent, vos option2 ne seront pas validés dans HTML 5.

option1 est toujours correct, car <dt> peut contenir tout "contenu de phrasé", y compris le contenu vide .

1

La balise est utilisée dans conjointement avec (définit la liste de définition) et (décrit l'élément dans la liste).
Copié à partir de W3.

2

Un dl contenant uniquement dd s valide dans le W3C validator, donc je suppose que c'est correct.

W3C HTML 4.01 Référence: 10.1 Introduction to lists

Exemple de travail:

<!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

Il est valable, mais je ne vois pas pourquoi vous avez envie de le faire.Notez que votre deuxième exemple s'applique uniquement au premier élément; il n'y a pas de dt manquant plus tard, car plusieurs articles dd peuvent s'appliquer pour un seul dt.

+0

Exemple pour mon cas qui expliquent mieux:

Nom:
Yosef

3

Selon the HTML 4 DTD:

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

Cela signifie que vous pouvez mélanger et assortir.

Voici une belle vue d'ensemble des différentes façons d'utiliser une liste de définitions:

+0

+1, c'est la ressource la plus définitive. Y a-t-il une bonne introduction à l'interprétation de la syntaxe DTD quelque part? –

+0

@Pekka: Direct et suffisant - http://en.wikipedia.org/wiki/Document_Type_Definition#Element_type_declarations ;-) – Tomalak