HTML es el lenguaje universal para publicar hipertexto en la World Wide Web [1]. Desde 1982, cuando Tim Berners-Lee simplificó SGML para establecer la definición original de HTML hasta el lanzamiento de la especificación XHTML1.1 en 2001, HTML se ha convertido en un estándar internacional con múltiples versiones [2]. Cada versión de la especificación se define en un lenguaje legible por máquina, que describe la estructura legal, los elementos y los atributos. Esta es la Definición de tipo de documento (DTD).
DTD describe la declaración de tipo de documento (declaración DTD, denominada tipo de documento [3]) ubicada al frente del documento HTML. Es el vínculo entre el documento y la instrucción DTD. Por ejemplo, el tipo de documento de HTML4.01 estricto es:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd ">
Indica la versión de HTML utilizada por el documento, que es la información más importante que herramientas como los navegadores necesitan al analizar el documento. Por ejemplo, las herramientas de validación del W3C pueden utilizarlo para comprobar la sintaxis y señalar errores.
La implementación incorrecta de estándares en los primeros navegadores, la proliferación de extensiones privadas y la confusión de los primeros estándares en cuanto a compatibilidad con versiones posteriores dieron como resultado que los documentos en ese momento no tuvieran tipos de documentos ni referencias directas a DTD, lo que también dificultaba la implementación de nuevos estándares. . ganaron adopción y popularidad porque los navegadores no podían distinguirlos. Para lidiar con páginas web creadas de acuerdo con estándares web y páginas web creadas de acuerdo con prácticas antiguas, Todd Fahrner propuso el método "ideó un interruptor" en 1998 [4], que permite al navegador proporcionar dos conjuntos de modos de representación. : es decir, con un tipo de documento completo, los documentos se analizan utilizando los estándares W3C; de lo contrario, se analizan a la antigua usanza.
Este método es práctico, sencillo y eficaz. Dos años más tarde, se utilizó por primera vez en la versión Mac de IE, y otros fabricantes de navegadores pronto lo adoptaron. Esto dio origen al doctype sniffing (doctype sniffing o doctype switch). El navegador lo utiliza para decidir si su motor debe adoptar el modo estándar, el modo cuasi estándar o el modo peculiar, lo que tendrá un gran impacto en el análisis de HTML y CSS, el diseño de CSS y los scripts de JavaScript [5]. No hay duda de que deberíamos utilizar el modelo estándar tanto como sea posible.
Aunque HTML5 aún está en borrador, los últimos navegadores Firefox3.5, Chrome2, Safari4 e IE8 han comenzado a admitir algunas funciones. En particular, el lanzamiento de Google Wave ha desencadenado un nuevo auge en la promoción de la práctica de HTML5. HTML5 no está basado en SGML y no tiene una DTD, pero por motivos de compatibilidad futura, acepta el hecho de detectar tipos de documentos y define que tipo de documento es la única declaración de conversión de modo en texto/html y no tiene ningún otro uso. Su tipo de documento es muy conciso: <!doctype html>[6].
Vale la pena mencionar que IE8 adopta la declaración Compatible con X-UA [7] para resolver la compatibilidad hacia adelante. Como resultado, el modo de representación del navegador en IE8 depende no solo del rastreo de tipos de documentos sino también de la declaración Compatible con X-UA. No sólo hace que el juicio de patrones sea más complejo [8], sino que también viola la idea de mejora progresiva en el diseño web [9].
En el camino hacia los estándares web, no sólo necesitamos compatibilidad hacia adelante llena de realismo, sino también compatibilidad hacia atrás llena de idealismo. Esta es la esperanza para garantizar que nuestra web pueda funcionar correctamente en el futuro. Bajo las ideas de estándares, simplicidad y mejora gradual, la mejor solución para nuestra página ahora puede ser:
<!doctype html> … <meta http-equiv="X-UA-Compatible" content="IE=Edge"> …
Nota:
[1] HTML es la lengua franca para publicar hipertexto en el mundo.
Amplia red
[2] http://zh.wikipedia.org/wiki/Html
[3] La declaración DTD a menudo se denominaba Declaración de tipo de documento en especificaciones anteriores.
Es fácil confundirlo con DTD.
[4] http://web.archive.org/web/20030212115103/http://www.geocrawler.
com/archives/list-name.mbox/123/1998/7/0/1037920/
[5]Activar el modo navegador con doctype
[6] http://www.w3.org/TR/html5/syntax.html#the-doctype
[7] Más allá de los tipos de documentos, la estandarización web es compatible con IE8
[8] http://dancewithnet.com/2009/06/14/activating-browser-modes
-with-doctype/#ie8modes
[9] ¿El futuro de los estándares web depende de la tecnología de los navegadores?
Texto original: http://ued.koubei.com/?p=928