Tabla de contenido
Este post va a quedar aquí publicado por que alguna gente me ha preguntado por esto del Doctype y la verdad es queme he dado cuenta de que mis respuestas no han sido todo lo buenas que me gustaría ya que no tengo muy fresco este concepto pero sé que si te dedicas a programas webs es algo que tienes que dominar como la tabla de multiplicar. Por esto me he puesto a buscar un poco de información y he recolectado un poco para tenerla a mano como me gusta.
Bueno, para el caso habrá que ponerse un poco en situación, desde que la primera web se desarrollo, ha habido diferentes cambios del HTML. Esto creo que es evidente para todo el mundo, pero me parece conveniente recordarlo.
Ahora sería bueno dar algunos conceptos de historia para poder entender algunos conceptos.
HTML4 – Fue liberado en 1997
Con la excepción de algunos elementos agregados en el HTML5. Aunque HTML4 tenía algunos elementos de presentación para la apariencia de las páginas web, ya no se recomienda usar HTML4, por ejemplo: HTML4 incluía la etiqueta < center > para centrar el contenido de una página (mucha gente cogimos en su día … muchos años atrás … la mala costumbre de utilizarla demasiado), pero como comento ya no es recomendable utilizar HTML 4 ya que las páginas van a pitar errores por todas partes según el navegador y el sistema operativo que el usuario utilice.
XHTML 1.0 – Fue liberado en el año 2000
En 1998, el lenguaje XML fue publicado. El propósito de este lenguaje fue permitir a las personas escribir nuevos lenguajes de marcado (años después a la hora de desarrollar APP para android, descubrí lo útil que resulta). Desde que HTML fue extensamente usado cómo lenguaje de marcado, se decidió que HTML4 debería ser reformulado para seguir las reglas del XML y así fue renombrado cómo XHTML. Esto quiere decir que algunos autores tienen que seguir y escribir nuevas reglas sobre cómo se escribe el lenguaje de marcado. Por ejemplo:
Todos los elementos necesitan cerrar su etiqueta (excepto los elementos vacíos cómo
< img />)
- Los nombres de los atributos deben ser escritos en letras minúsculas.
- Todos los atributos requieren de un valor y todos los valores deberán ser escritos entre dobles comillas.
- Elementos obsoletos no deberian ser usados.
- Cada elemento que se abre dentro de otro elemento deberá ser cerrado dentro del mismo elemento.
Una de las ventajas de este cambio fue que XHTML trabaja sin problemas con otros programas que están escritos para crear y procesar documentos XHTML. De hecho puede ser usado con otros formatos de datos cómo SVG, XML, MathML, CML.
Ahora bien chicos, en orden para ayudar a que los autores de las páginas web cambiarán a esta nueva sintaxis, dos principales tipos de XHTML 1.0 fueron creados:
- Strict XHTML 1.0, donde los autores tenían que seguir las reglas a la letra.
- Transitional XHTML 1.0, donde los autores podian seguir usando elementos de presentación cómo < center > y < font >.
La versión transitional de XHTML fue creada porque esta les permitía a los autores continuar o seguir con viejas prácticas (con una sintaxis menos estricta).
También hubo una versión de XHTML llamada XHTML 1.0 Frameset la cual permitia a los autores de la página web particionar la ventana del explorador en muchos “frames”, cada uno de los cuales tendría una página HTML diferente. Hoy en dia los frames son muy raros al usarse dado que ya están desfasados.
HTML5 – Trabajo en proceso
En HTML5, los autores de las páginas web no necesariamente deben cerrar todas las etiquetas, y nos encontramos con nuevos elementos y atributos que se crearon en HTML5.
Distintos tipos de Doctype
Porque ha habido diferentes versiones de HTML, cada página debería de iniciar con la declaración DOCTYPE para decirle al explorador que versión de HTML la página esta usando. (Aunque los exploradores muestran la página si el Doctype no se escribe).
El uso del Doctype también puede ayudar a los exploradores para renderizar la página correctamente.
Porque XHTML fue escrito en XML, veremos que muchas veces las páginas que usan el DOCTYPE de XHTML en modo estricto(strict) inician con la declaración opcional XML. Cuando esta declaración es usada debería ser la primer cosa declarada en el documento. No debe de haber nada antes de esta declaración ni siquiera un espacio.
Ejemplo de cómo se escriben los tipos de DoCtypes de acuerdo a la versión del HTML:
<!– Tipo de documento: HTML5 –>
<!DOCTYPE html>
<!– Tipo de documento: HTML4 –>
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»>
<!– Tipo de documento: Transitional XHTML 1.0 –>
<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»>
<!– Tipo de documento: Strict XHTML 1.0 –>
<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»>
<!– Tipo de documento: Declaración XML –>
<?xml version=«1.0» ?>
<!– Tipo de documento: HTML 4.01 Frameset «NO USAR» –>
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Frameset//EN» «http://www.w3.org/TR/html4/frameset.dtd»>
Alguna gente se piensa que esto es un concepto poco importante, pero diré que si no vigilas que doctype utilizas y quieres validar tu web con el validador W3c vas a descubrir una cantidad ingente de errores que se corregirían con una elección correcta.
Hasta aquí estos pequeños conceptos, quizás algún día escriba algo más sobre esto (aun que no es lo más divertido del mundo … la verdad)