web-dev-qa-db-fra.com

Quels éléments une balise span peut-elle contenir en HTML5?

J'ai donc été développeur CLI ou Cron en PHP pendant la majeure partie de ma carrière et maintenant j'apprends pourquoi je n'aimais pas le travail de l'interface utilisateur à l'école;) Je traite de la validation HTML5 ici et je suis ne pas trouver de réponse à une question de curosité. J'ai exécuté la validation HTML5 W3C sur ma page d'accueil et j'ai eu plusieurs erreurs autour d'une div se trouvant dans un <span> et ce n'est pas autorisé. J'ai essayé de tout changer <div> sur une plage allant jusqu'à <p> mais reçoit à peu près la même erreur. http://www.w3schools.com/html5/tag_span.asp ne dit pas explicitement quels éléments sont autorisés dans un <span> et l'erreur du validateur non plus:

Ligne 85, colonne 69: l'élément p n'est pas autorisé en tant qu'enfant de la portée d'élément dans ce contexte. (Suppression d'autres erreurs de ce sous-arbre.)

2 questions:

1) Quels éléments, le cas échéant, sont autorisés dans un <span>?

2) Où puis-je faire référence aux éléments autorisés dans un autre? J'ai googlé mais ne vois rien qui a un cachet "W3C" dessus.

32
Ghost

Seuls les éléments en ligne peuvent être contenus dans des éléments en ligne. span est un élément en ligne. Ainsi, les balises comme a, img, sup, etc. peuvent aller dans un intervalle, mais les éléments de niveau bloc comme div et p ne peux pas.

[~ # ~] mise à jour [~ # ~]

En réalité, les différents éléments qui par défaut s'affichent en ligne se comportent différemment. Certains éléments "en ligne" peuvent autoriser des éléments de bloc (a par exemple), tandis que d'autres ne le font pas (comme span).

Si vous êtes intéressé par ce qu'une balise HTML peut contenir, votre source la plus officielle est la page WHATWG sur les éléments HTML. Vous pouvez vérifier n'importe quel élément HTML et voir quel contenu est autorisé (voir "Modèle de contenu" pour chaque élément):

http://www.whatwg.org/specs/web-apps/current-work/multipage/#auto-toc-4

Voici la définition de la balise span, qui indique que seul le contenu "phrasé" est autorisé.

http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-span-element

51
jackwanders