¿Qué es la Declaración DOCTYPE en HTML?

La declaración del tipo de documento HTML, también conocida como DOCTYPE, es la primera línea de código requerida en cada documento HTML o XHTML. La DOCTYPEdeclaración es una instrucción para el navegador web sobre la versión de HTML en la que está escrita la página. Esto asegura que la página web sea analizada de la misma manera por diferentes navegadores web.

En HTML 4.01, la DOCTYPEdeclaración se refiere a una definición de tipo de documento (DTD). Una DTD define la estructura y los elementos legales de un documento XML. Dado que HTML 4.01 se basó en el lenguaje de marcado estándar generalizado (SGML), DOCTYPEera necesario hacer referencia a un DTD en la declaración.

Además, doctypes para HTML 4.01 requiere la declaración de cualquiera strict, transitionalo framesetDTD, cada uno con un caso de uso diferente Como veremos a continuación.

  • DTD estricto : se utiliza para páginas web que excluyen atributos y elementos que el W3C espera eliminar a medida que crece el soporte de CSS
  • DTD de transición : se utiliza para páginas web que incluyen atributos y elementos que el W3C espera eliminar a medida que crece el soporte de CSS
  • DTD de conjunto de marcos : se utiliza para páginas web con marcos

Por el contrario, la declaración de HTML5 DOCTYPEes mucho más simple: ya no requiere una referencia a DTD, ya que ya no se basa en SGML. Consulte los ejemplos a continuación para ver una comparación entre HTML 4.01 y HTML5 DOCTYPE.

Ejemplos

Sintaxis de Doctype para HTML5 y más allá:

Sintaxis de Doctype para HTML 4.01 estricto:

Sintaxis de Doctype para HTML 4.01 de transición:

Sintaxis de Doctype para el conjunto de marcos HTML 4.01:

Historia

Durante los años de formación de HTML, los estándares web aún no se acordaron. Los proveedores de navegadores crearían nuevas funciones de la forma que quisieran. Hubo poca preocupación por los navegadores de la competencia.

El resultado fue que los desarrolladores web tuvieron que elegir un navegador para desarrollar sus sitios. Esto significaba que los sitios no se mostrarían bien en navegadores no compatibles. Esta situación no pudo continuar.

El W3C (World Wide Web Consortium) escribió un conjunto de estándares web para manejar esta situación. Todos los proveedores de navegadores y desarrolladores web deben adherirse a estos estándares. Esto garantizaría que los sitios web se muestren bien en todos los navegadores.

Los cambios requeridos por las normas fueron bastante diferentes de algunas prácticas existentes. Adherirse a ellos rompería los sitios web existentes que no cumplen con los estándares.

Para manejar este problema, los proveedores comenzaron a programar modos de renderizado en sus navegadores. Los desarrolladores web necesitarían agregar una declaración de tipo de documento en la parte superior de un documento HTML. La declaración de tipo de documento le diría al navegador qué modo de renderizado usar para ese documento.

En general, se encontraban disponibles tres modos de renderizado separados en todos los navegadores.

  • El modo de estándares completos muestra las páginas de acuerdo con los estándares web del W3C.
  • El modo Quirks procesa las páginas de una manera que no cumple con los estándares.
  • El modo casi estándar está cerca del modo estándar completo, pero cuenta con soporte para una pequeña cantidad de peculiaridades.

En la era moderna de HTML5, los estándares web están completamente implementados en todos los principales navegadores. Los sitios web generalmente se desarrollan de manera compatible con los estándares. Debido a esto, la declaración de tipo de documento HTML5 solo existe para decirle al navegador que procese el documento en modo estándar completo.

Uso

La Declaración de Doctype debe ser la primera línea de código en un documento HTML, además de los comentarios, que pueden ir antes de ella si es necesario. Para documentos HTML5 modernos, la declaración de tipo de documento debe ser la siguiente:

Más información:

Aunque ya no es de uso general, hay varios otros tipos de declaración de tipo de documento de versiones anteriores de HTML. También existen versiones específicas para documentos XML. Para leer más sobre estos y ver ejemplos de código para cada uno, eche un vistazo al artículo de Wikipedia.

Una nota del W3

Entrada del glosario de MDN

W3Schools

Una explicación rápida del "Modo Quirks" y el "Modo Estándar"