web-dev-qa-db-fra.com

Est-ce que div inside list est autorisé?

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?

153
Kenan

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>
198
Darin Dimitrov

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!

29
Damon

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

14
Messa

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.

3
mystrdat

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.

0
user1212854