Saltar al contenido

Declaración <!DOCTYPE> de HTML

La declaración <!DOCTYPE> es la primera línea de código en un documento HTML o XHTML. Especifica la versión de HTML utilizada en el documento. Cada documento HTML debe comenzar con esta declaración para que los navegadores rendericen la página en Modo Estándar en lugar de Modo Quirks, garantizando el cumplimiento de los estándares web. En HTML 4.01, esta declaración hace referencia a una Definición de Tipo de Documento (DTD), que especifica la estructura y los elementos legales de un documento XML.

La <!DOCTYPE> se declara antes de la <html> etiqueta. La declaración no distingue entre mayúsculas y minúsculas.

Sintaxis

Sintaxis DTD heredada

html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">

Parámetros de <!DOCTYPE>

Elemento raíz: el elemento padre que contiene todos los demás elementos. Para HTML es la etiqueta <html>.

Identificador público: indica si la DTD es PUBLIC o SYSTEM. Para HTML/XHTML, el valor es PUBLIC.

Registro: históricamente indicaba el estado de registro ISO (+ o -). Para las DTD de W3C, esto generalmente se omite.

Organización: el nombre del desarrollador de la DTD. Para HTML/XHTML, este es W3C.

Tipo: el tipo de documento. Para HTML/XHTML, el valor es DTD.

Nombre: identificador único que describe la DTD.

Idioma: el idioma del documento (dos letras mayúsculas). Para HTML/XHTML, esto suele ser EN.

URL: la URL de la descripción del tipo de documento (por ejemplo, https://www.w3.org/TR/html4/strict.dtd).

Tipos de la declaración <!DOCTYPE> para HTML

Los documentos HTML modernos utilizan una única declaración simplificada. El HTML 4.01 heredado tenía tres tipos:

HTML5

html
<!DOCTYPE html>

Strict - contiene todos los elementos y atributos de HTML. Sin embargo, no incluye elementos presentacionales u obsoletos.

html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">

Transitional - contiene todos los elementos y atributos de HTML, incluidos los elementos presentacionales y obsoletos. No se permiten marcos.

html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">

Frameset - es igual a Transitional, pero permite el uso de marcos.

html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "https://www.w3.org/TR/html4/frameset.dtd">

Ejemplo de la declaración <!DOCTYPE> de HTML:

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <h2>Elements example</h2>
    <p>This is some paragraph.</p>
    <p>This is another paragraph <br /> with  line break.</p>
  </body>
</html>

Resultado

paragraph

Tipos de la declaración <!DOCTYPE> para XHTML

Aquí puedes encontrar los tipos de la declaración <!DOCTYPE> para XHTML.

XHTML 1.0 Strict

Esta DTD incluye todos los elementos y atributos de HTML, excepto los elementos presentacionales u obsoletos. Esta DTD no permite marcos.

html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 Transitional

Esta DTD incluye todos los elementos y atributos de HTML, así como los elementos presentacionales y obsoletos. No se permiten conjuntos de marcos.

html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 Frameset

Esta DTD es similar a XHTML 1.0 Transitional, pero se permiten conjuntos de marcos.

html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1

Esta DTD es igual a XHTML 1.0 Strict, pero permite agregar módulos (por ejemplo, para proporcionar soporte de Ruby para idiomas del este de Asia).

html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Práctica

¿Cuáles de las siguientes afirmaciones sobre la declaración DOCTYPE de HTML son correctas?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.