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
<!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
<!DOCTYPE html>Strict - contiene todos los elementos y atributos de HTML. Sin embargo, no incluye elementos presentacionales u obsoletos.
<!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.
<!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.
<!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:
<!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

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.
<!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.
<!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.
<!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).
<!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?