Je sais que DIV dans LI n'est pas autorisé, mais je l'ai vu récemment sur de nombreux "grands" sites Web tels que: Smashing Magazine, Web Designer Wall, etc. J'essaie de valider des sites. à propos de div en LI?!
Alors, est-ce que je peux l'utiliser dans LI, et j'en ai besoin pour être valide?
Oui, il est valide selon xhtml1-strict.dtd
. Le XHTML suivant réussit le validation :
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>
<ul>
<li><div>test</div></li>
</ul>
</body>
</html>
En additif: Avant HTML 5, lorsqu'un div dans un li est valide, un div dans un dl, dd ou dt ne l'est pas!
Si vous regardez xhtml1-strict.dtd , vous verrez
<!ELEMENT li %Flow;>
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
<!ENTITY % block
"p | %heading; | div | %lists; | %blocktext; | fieldset | table">
Ainsi, div
, p
etc. peuvent être à l'intérieur de li
(selon la DTD stricte XHTML 1.0 de w3.org).
Si je me souviens bien, un div à l'intérieur d'un li tilisé pour être invalide.
@Flower @Superstringcheese Div devrait définir sémantiquement une section d'un document, mais elle a déjà pratiquement perdu ce rôle. Span devrait cependant contenir du texte.
Je vois que vous voudriez faire cela si vous vouliez rendre, par exemple, toute la boîte d’un élément de menu cliquable. J'avais l'habitude d'insérer une balise 'li' dans les balises 'a' pour le faire, mais cela semble plus valable.