Pourquoi ne pas le formulaire imbriqué dans p validate XHTML
Prenez par exemple cette XHTML extrait de:
<!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>
<title>A webpage</title>
</head>
<body>
<p>
<form action="something.php" method="get">
<input type="submit" value="Hello"/>
</form>
</p>
</body>
</html>
De l'arbre doit être valide, cependant cela ne peut pas analyser correctement dans un navigateur.
- n'est pas la page de validation de faire des suggestions?
Vous devez vous connecter pour publier un commentaire.
Regarder les messages d'erreur que vous obtenez lorsque vous essayez de faire cela avec http://validator.w3.org
En dehors de l'avertissement que vous n'avez pas spécifié un codage de caractères (et que c'est donc en supposant que l'UTF-8), la principale erreur est qu'un
<p>
n'est pas permis de contenir non du contenu en ligne. Vous pouvez soit supprimer le<p>
et</p>
complètement, ou de les déplacer à l'intérieur de la<form>
.Comme pour les "pourquoi", c'est parce que c'est la façon dont il est défini dans le schéma qui définit ce qui est et ce qui n'est pas valide XHTML. Si vous regardez cette section du XHTML définition vous verrez que
<p>
est seulement permis de contenir du texte ou "inline" (et non "en bloc") des balises. Toutefois, un<form>
considéré comme du "bloc" contenu non pas comme 'inline' contenu.En d'autres termes, un formulaire peut contenir des paragraphes, mais un paragraphe ne peut pas contenir de formes.
Selon cette, parce que:
Essayez d'utiliser le Validateur W3C, qui dira ce qui est invalide avec plus de (X)HTML et CSS documents.
Vous ne pouvez pas mettre en forme à l'intérieur du paragraphe. Écrire comme ceci:
J'ai couru un test avec votre code HTML à travers validator.w3.org et le résultat est que vous avez besoin de swap de la P et de la FORME des balises pour que ça passe comme valide W3C HTML.