Je voudrais utiliser une liste de définition aussi simple que:style une liste definitition aussi simple valeur de clé définie
<dl>
<dt>name:</dt>
<dd>Tomas</dd>
<dt>address:</dt>
<dd>this is a very long wrapping address</dd>
<dt>age:<dt>
<dd>29</dd>
<dl>
pour render quelque chose comme:
name: Tomas
address: this is a very long
wrapping address
age: 29
La liste de définition semble sémantiquement meilleure option ici.
Utilisation du nouveau style d'affichage run-in fera l'affaire:
<style> dt { display: run-in; } </style>
Mais ce n'est pas encore largement pris en charge. Comment puis-je styliser ma liste de définitions pour un meilleur support cross-browser (ie6 pas nécessaire), sans changer le html (actuellement j'utilise display inline et j'ajoute des brides disgracieux)?
Modifier pour clarifier:
dt { clear: left; }
dd { float: left; }
ne fonctionnera pas parce qu'elle rendrait comme:
name: Tomas
address: this is a very long
wrapping address
age: 29
La conception précise que ces champs multi-ligne devrait envelopper au début de la ligne pour préserver espace.
Votre solution semble bien fonctionner avec une mise en garde: si un dd est vide, le dd en dessous se déplacera vers le mauvais champ! Cependant pour mon application ce n'est pas un problème car les lignes vides ne se produiront pas. Merci! – Tomas
Si vous ne le saviez pas, vous pouvez avoir plusieurs éléments 'dt' par' dd' et vice-versa (l'idée étant un "terme" peut avoir plusieurs définitions et la même définition peut être utilisée pour plusieurs termes). Le problème que vous avez mentionné se produit parce qu'un 'dd' vide est ignoré, donc' dt' pour cela est groupé avec le 'dt' suivant et les deux associés' dd'. – DisgruntledGoat
Ooh, trouvé une solution: enlever le 'clear: left' sur le' dt' et l'ajouter comme une règle séparée: 'dd: after {content:". "; visibilité: cachée; clair: gauche; } ' – DisgruntledGoat