2010-07-04 7 views

Répondre

2

Tous les balises HTML ressemblent à XML. C'est parce que XML et HTML sont étroitement liés à SGML. XML est juste un langage de balisage plus généralisé et "extensible" que HTML. Et je dirais à peine que XML n'est pas "largement utilisé", étant donné que XHTML, RSS, ATOM, RDF, EPUB, XMPP, microformats, ODF, SOAP, etc. sont tous basés sur XML. Il est beaucoup plus populaire en général que les fichiers YAML, JSON ou INI —, qui ne sont en aucun cas des langages de balisage de documents.

Ainsi, le fait que les balises HTML ressemblent à XML est une raison vraiment idiote d'éviter d'utiliser une balise particulière ou un ensemble de balises. Markup devrait être choisi en fonction de la structure sémantique de votre contenu, pas la popularité de XML dans l'application complètement indépendante de la sérialisation des données.Vous utilisez DL lorsque vous devez représenter une liste de définition . Autrement dit, chaque fois que vous avez quelque chose de la structure sémantique:

term: definition 
term: definition 
term: definition 
... 

à proprement parler, les listes de définition devrait être utilisée que pour définir les termes comme dans un glossaire. Mais en pratique, il est utilisé pour beaucoup plus que cela. Parce que HTML ne fournit pas de balises pour spécifier d'autres types de relations de paires, DL est utilisé comme un fourre-tout dans cette zone. Outre les termes de définition, DL est également utilisé pour la boîte de dialogue: l'élément DT contient le nom de l'orateur et DD la ligne parlée.

Une forme peut également être représentée sous la forme d'une liste de définition, mais l'utilisation de la balise LABEL est plus correcte que l'OMI sémantiquement correct.

J'utilise habituellement DL quand je dois énumérer un ensemble d'attributs et de leurs valeurs, par exemple .:

File Name: Chloroform Girl.avi 
File Size: 320 MiB 
File Type: Video 
2

En HTML, <dl/> doit être utilisé chaque fois que vous avez besoin d'une liste de mots avec les définitions. En pratique, la liste de définition est utilisée dans les situations où une simple liste (non ordonnée <ul/> ou ordonnée <ol/>) ne suffit pas.

Par exemple, vous souhaitez afficher une liste de fichiers à télécharger. Chaque fichier a une icône, un nom, une taille et un bouton de téléchargement.

  1. D'abord, vous pouvez tout mettre dans un <table/>. C'est ce qui a été fait dix ans auparavant, quand le CSS n'était pas utilisé aussi intensément qu'aujourd'hui, et quand la séparation entre le contenu et la présentation n'était pas trop claire.

  2. Ensuite, vous pouvez simplement mettre tout <div/> s: chaque fichier dans un <div/>, chaque nom de fichier dans un <div/>, etc. Le problème est que le code sera plus, moins facile à comprendre et plus difficile à maintenir . Ensuite, vous voudrez peut-être mettre un <ul/> avec plein de <div/> s à l'intérieur. Ceci est similaire au (2)

  3. Enfin, vous pouvez utiliser une liste de définitions. Les avantages seront une taille réduite du code HTML et un code plus facile à maintenir. En passant, l'accessibilité sera augmentée: CSS désactivé, votre page sera toujours lisible (alors qu'avec <div/> s, l'utilisateur aura beaucoup de mal à comprendre qu'il s'agit d'une liste de fichiers).

+0

Votre cas d'utilisation est parfaite pour une table, pas une liste définition/description. – Alohci

+0

@Alohci: pas vraiment. Ce serait purement une table pour la disposition, et d'ailleurs, nuira à la maintenance. Par exemple, vous devez afficher une icône sur le côté gauche, un nom au milieu, une taille * ci-dessous * le nom, et un bouton sur la droite? Maintenant, les exigences changent, et le bouton doit être affiché ci-dessous. Avec une table, vous devrez changer le HTML, même si le changement d'exigence est purement sur la mise en page. –

+1

Vous justifiez le choix de l'élément sémantique en fonction des exigences de présentation. Sémantiquement, il s'agit clairement d'une table - vous avez des colonnes (icône, nom, taille, lien de téléchargement) et des lignes (la liste des fichiers). Les s sont faciles à identifier et une légende ou un résumé décrivant ce que la table fait pour l'utilisateur est clair. Maintenant, je suis d'accord que restyler une table dans CSS seul est extrêmement difficile. C'est essentiellement un échec de CSS, et pas une justification pour le choix incorrect de l'élément sémantique. – Alohci

Questions connexes