2010-11-08 16 views
22

Ich bin dabei, einen "HTML4.5" -Ansatz auf eine vorhandene XHTML1.0 Strict-Site anzuwenden. Die Idee ist, den Doctype zu ändern und semantische Klassen anzuwenden, die den neuen HTML5-Elementen entsprechen (< div class="aside"> usw.) und alles zu tun, ohne dass der Internet Explorer (IE) bricht (z. B. neue Attribute vom Typ <input> anwendet).& nbsp verursacht einen HTML5-Validierungsfehler

Das einzige Problem, das ich angetroffen habe, ist, dass W3C's Validator nicht &nbsp; oder &copy; mag, während html5.validator.nu kein Problem hat.

Ich weiß, dass HTML5-Validatoren in diesem Stadium experimentell sind. Sollte ich &nbsp; durch etwas ersetzen? Wenn ja, was?

Mein Zeichensatz auf dieser bestimmten Site ist UTF-8.

Antwort

32

&nbsp; ist in der text/html HTML5 in Ordnung und es validiert für mich bei W3.

Wo es wird nicht Validierung ist in XHTML5. Die einzigen integrierten Entitäten in XML sind &amp;, &lt;, &gt;, &quot; und &apos;. XHTML1 brachte die HTML-Entity-Liste mittels der DTD ein, auf die von <!DOCTYPE> verwiesen wird, aber (X) HTML5 verwendet keine DTD mehr, das bedeutet, dass Sie in der XML-Serialisierung die HTML-Entitäten nicht verwenden können.

Eine Zeichenreferenz wie &#xA0; ist immer noch in Ordnung. Und wenn Sie Ihre Seite mit der richtigen Kodierung versehen, können Sie einfach ein U + 00A0 Leerzeichen ohne Leerzeichen einfügen, ohne zu entkommen:  . (Natürlich ist das ärgerlich sein wird zu bearbeiten, wenn Ihr Texteditor ohne Pause und Standard-Raum visuell nicht unterscheidet.)

0

Ersetzen Sie einfach alle &nbsp; mit &#160;

+4

i die richtige dezimal Einheit erraten für '   'sollte'   'sein oder man könnte auch hexadezimale Entität'   'verwenden – Gauts