2010-11-08 4 views
22

Je suis en train d'appliquer une approche "HTML4.5" à un site XHTML1.0 Strict existant. L'idée est de changer le doctype et d'appliquer des classes sémantiques correspondant aux nouveaux éléments de HTML5 (< div class="aside">, etc.) et de faire tout ce que je peux faire, sans rupture d'Internet Explorer (IE) (par exemple en appliquant de nouveaux attributs de type <input>).& nbsp provoque l'échec d'une validation HTML5

Le seul problème que j'ai rencontré est que le validateur du W3C n'aime pas &nbsp; ou &copy;, alors que html5.validator.nu n'a aucun problème.

Je sais que les validateurs HTML5 sont expérimentaux à ce stade. Dois-je remplacer &nbsp; par quelque chose? Si oui, quoi? Le jeu de caractères sur ce site particulier est UTF-8.

Répondre

32

&nbsp; est bien dans le text/html HTML5 et il valide pour moi à W3.

ne sera pas valider est en XHTML5. Les seules entités intégrées dans XML sont &amp;, &lt;, &gt;, &quot; et &apos;. XHTML1 a introduit la liste d'entités HTML au moyen de la DTD référencée par <!DOCTYPE>, mais (X) HTML5 n'utilise plus de DTD, ce qui signifie que dans la sérialisation XML, vous ne pouvez pas utiliser les entités HTML.

Une référence de caractère telle que &#xA0; est toujours correcte. Et si vous servez votre page dans le bon encodage, vous pouvez simplement ajouter directement un caractère U + 00A0 No-Break Space sans échapper:  . (Bien sûr que ça va être gênant pour modifier si votre éditeur de texte ne distingue pas visuellement le non-break et de l'espace standard.) Remplacer

0

simplement tous les &nbsp; avec &#160;

+4

Je suppose que l'entité décimale correcte pour '   'devrait être'   'ou on pourrait aussi utiliser l'entité hexadécimale'   ' – Gauts

Questions connexes