Angenommen, ich möchte eine ältere Website als "HTML5" -ish ändern. Ist es sicher, einfach die Überschrift doctype
wie folgt zu ändern?
Der ursprüngliche Doctyp könnte sein:
%Vor%oder
%Vor% Wenn der Wechsel zu <!doctype html>
keine Möglichkeit hat, die Darstellung der alten Webseite zu ruinieren, würde ich annehmen, dass sie sicher ist.
Warum ja, ja, ist es.
Tatsächlich wurde HTML5 speziell dafür entwickelt, so dass jeder seinen Doctype einfach ändern konnte, ohne das Markup zu berühren und es wäre gültig.
Fast sicher.
Dieser Doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
verursacht in Browsern einen Modus mit eingeschränkten Macken / fast Standards, während dieser Doctyp:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
und dieser Doctype
<!doctype html>
verursacht Standards in Browsern.
Der Unterschied besteht darin, dass einige Inline-Elemente in Zeilenfeldern vertikal ausgerichtet sind.
Wenn Ihr "loses" Dokument veraltete Tags wie "font" oder "frameset" enthält, wird die Seite nicht validiert, sobald Sie sie in HTML5 geändert haben. Wird es funktionieren? Ja, sehr wahrscheinlich. Wird es gültig sein? Hängt vom tatsächlichen Inhalt ab. Höchstwahrscheinlich sind Ihre strengen Dokumente, wenn sie gültig waren, immer noch gültig, aber die "losen" Dokumente sind möglicherweise nicht gültig.
Was passiert mit dem Display? Das hängt davon ab. Ich habe festgestellt, dass die Änderung eines Übergangsdokuments in HTML5 zu Anzeigeänderungen in einigen Browsern führte - in einigen Fällen radikal genug, dass ich sie zurückstellen musste, bis ich Zeit hatte, die betreffenden Seiten neu zu schreiben.
Es hängt von Ihrer Definition von Safe ab.
Es wird zuverlässig die gleichen Rendering-Modi in den Browsern auslösen, so dass Sie keine Unterschiede erhalten, die sich auf die Endbenutzer auswirken.
Es wird auch die Regeln ändern, die ein Validierer verwenden wird, um das Dokument zu überprüfen, so dass es Probleme für Ihren QA-Prozess geben kann, da Dokumente aktualisiert werden müssen.
Ich habe gerade herausgefunden, dass es NICHT sicher ist. Ich brauchte einige HTML5-Elemente in einer alten Website, die seit ein paar Jahren funktioniert. Ich musste den Doctype zu HTML ändern, weil einige Browser sonst nicht mit den neuen Elementen arbeiten würden.
Es stellte sich heraus, dass in Javascript die domobject.name
nicht mit der neuen doctype
funktioniert. Sie müssen domobject.attributes["name"].value
verwenden. Kurz gesagt, diese einfache Sache hat große Probleme mit der Kernfunktionalität der Website verursacht.
Daher ist es am besten, alles nach dem Ändern der doctype
zu testen, da es verschiedene Dinge zerstören kann, von denen du nicht denken würdest ...