5568 sujets

Sémantique web et HTML

Bonjour,

J'ai une liste qui contient zéro ou plusieurs éléments. Comme j'affiche de toute façon la balise de début et de fin je me retrouve parfois avec une liste vide:


<ul>
</ul>


Ce qui semble invalide, vous me confirmez ça ?

Fab
Modifié par thefab (28 Apr 2010 - 02:02)
Bonsoir,
Le validateur du w3c refuse (en xhtml 1.0 strict) la balise <ul> vide qui nécessite un enfant
Valide si contient une balise <li> vide

Valide en HTML 5 ???

(valide en html5 est une affirmation, les points d'interrogation c'est pour la surprise)





a écrit :
Most likely, you nested tags and closed them in the wrong order. For example <p><em>...</p> is not acceptable, as <em> must be closed before <p>. Acceptable nesting is: <p><em>...</em></p>

Another possibility is that you used an element which requires a child element that you did not include. Hence the parent element is "not finished", not complete. For instance, in HTML the <head> element must contain a <title> child element, lists require appropriate list items (<ul> and <ol> require <li>; <dl> requires <dt> and <dd>), and so on.

Modifié par lacsap (28 Apr 2010 - 00:41)
lacsap a écrit :
Le validateur du w3c refuse (en xhtml 1.0 strict) la balise <ul> vide qui nécessite un enfant
Valide si contient une balise <li> vide


Il me le refuse aussi en HTML4 strict. Merci pour l'astuce du <li> vide.

lacsap a écrit :
Valide en HTML 5 ???
(valide en html5 est une affirmation, les points d'interrogation c'est pour la surprise)


Tu as piqué ma curiosité, j'ai testé c'est valide en HTML5... mais j'ai pas vu la surprise ?? Smiley decu

Hermann a écrit :
si tu ne peux éviter d'avoir un ul vide (ce qui n'a aucun sens), il faudra faire en sorte de lui attribuer un display:none


On est bien d'accord que ça n'a aucun sens, c'est plus par soucis de m'informer (j'ai supprimé les listes vides de mon code).

Oui effectivement il faudrait masquer tout ça, merci pour l'astuce :empty

Hermann a écrit :
Mais pour que tu puisse répondre toi même à ce genre d'interrogation, tu dois apprendre à lire la spec > http://www.la-grange.net/w3c/html4.01/intro/sgmltut.html#h-3.3


Oui mais comme c'est c****t de lire la doc je préfère laisser les autres le faire Smiley cligne ... nan je déconne, ça me dérange pas de lire la doc mais honnêtement je pensais que la doc disait juste on peut mettre des <li> dedans, j'avais oublié qu'il y avait (LI)+ !! (J'ai compris je vais la relire).

Merci pour ces précisions

Fab
Dans l'absolu il vaudrait mieux ne pas avoir d'élément vide. Exemple en faux code:
if items:
    <ul>
    for item in items:
        <li>item.content</li>
    </ul>