¿Por qué necesito un doctype? (Qué hace) [duplicate]


Posible Duplicado:
HTML: ¿Cuál es la funcionalidad de !DOCTYPE

Hace poco hice una pregunta aquí y la solución fue simple:

Necesita agregar un doctype a la página. Esto debería solucionar el problema para usted.

Ahora, mis páginas funcionan bien en todos los navegadores sin el doctype (excepto IE). ¿Necesita IE un doctype (es esto una cosa única de IE) y otros navegadores simplemente lo asumen O o es que haciendo algo que no veo.

¿cuáles son sus funciones y cómo funciona?

Author: Community, 2011-05-20

8 answers

Todos los navegadores necesitan el doctype. Sin el DOCTYPE está forzando a los navegadores a renderizar en Modo Quirks.

Sin embargo, DOCTYPEsolo fue utilizado parcialmente por los navegadores en determinar el dialecto y analizar, a pesar de que ese era el propósito. Esta es la razón por la que HTML5 ha reducido el DOCTYPE a simplemente :

<!DOCTYPE html>

2.2. El DOCTYPE

La sintaxis HTML de HTML5 requiere que se especifique un DOCTYPE para garantizar que el navegador renderiza la página en modo estándar. El DOCTYPE no tiene otro propósito y por lo tanto es opcional para XML. Los documentos con un tipo de medio XML siempre se manejan en modo estándar. [DOCTYPE]

La declaración DOCTYPE es <!DOCTYPE html> y no distingue entre mayúsculas y minúsculas en la sintaxis HTML. Los DOCTYPEs de versiones anteriores de HTML eran más largos porque el lenguaje HTML estaba basado en SGML y por lo tanto requería una referencia a un DTD. Con HTML5 este ya no es el caso y el DOCTYPE solo es necesario para habilitar modo estándar para documentos escritos usando la sintaxis HTML. Los navegadores ya hacen esto para <!DOCTYPE html>.

Fuente: HTML5 diferencias de HTML4: DOCTYPE

 45
Author: Kevin Peno,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-20 19:23:57

El Doctype hace dos cosas.

  1. Identifica qué dialecto de HTML está utilizando.
  2. Controla si los navegadores utilizan el modo "estándares" o "peculiaridades" para renderizar el documento.

Si no hay doctype, o hay uno no reconocido, entonces usa el modo "peculiaridades" e interpreta el documento lo mejor que puede. Si hay un doctype, y lo reconoce, entonces sigue los estándares. Los resultados de la representación pueden variar dependiendo de cómo interpreta el documento.

 9
Author: Will Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-20 18:58:36

¿Por qué?

¿Por qué especificar un doctype? Porque define qué versión de (X)HTML documento está utilizando realmente, y esto es una pieza de información crítica necesario por algunas herramientas que procesan el documento.

Por ejemplo, especificando el doctype de su documento le permite utilizar herramientas como el Validador de marcado a comprobar la sintaxis de tu (X)HTML. Tales herramientas no podrán trabajar si no lo hacen sepa qué tipo de documento es utilizar.

Pero lo más importante es que con la mayoría de las familias de navegadores, un doctype declaración hará un montón de adivinando innecesario, y será así activa un modo de renderizado "estándar".

Fuente: http://www.w3.org/QA/Tips/Doctype

 5
Author: onteria_,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-20 18:58:48

Debe tener un DOCTYPE para CUALQUIER navegador. Le dice al navegador cómo interpretar el html y css. Esta es la razón por la que html4 y html5 tienen diferentes definiciones (al igual que xhtml). Todo muy importante para la validación.

Lo que IE hará es poner el documento en lo que llama 'modo quirks', que básicamente ignora un montón de reglas sobre cómo debe comportarse CSS (según las definiciones modernas). He aquí un buen resumen de la cuestión. Se remonta a los malos tiempos de CSS no estandarizado apoyo

 2
Author: lnrbob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-20 18:59:22

Los navegadores necesitan al menos renderizar en lo que se conoce como modo estándar. Vea el artículo de John Resig sobre el doctype html 5: http://ejohn.org/blog/html5-doctype / . Ahora si quieres que tu navegador no use estándares y renderice como su 1990 sigue adelante y no agregue nada y verás flotadores y otros elementos estándar ahora no funcionan correctamente. Si desea que su página se renderice / valide de acuerdo con un estándar en particular, entonces querrá agregar más al tipo doc, pero es no es necesario.

 1
Author: scrappedcola,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-20 19:00:54

La declaración doctype debe ser la primero en un documento HTML, antes de la etiqueta.

La declaración doctype no es HTML etiqueta; es una instrucción a la web navegador acerca de qué versión de la idioma de marcado la página está escrita en.

La declaración doctype se refiere a un Definición de Tipo de Documento (DTD). El DTD especifica las reglas para el marcado idioma, para que los navegadores representen contenido correctamente.

Referencia

 0
Author: breezy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-20 18:58:19

Desde W3Schools, un doctype es "una instrucción para el navegador web sobre qué versión del lenguaje de marcado está escrita la página."(http://www.w3schools.com/tags/tag_doctype.asp)

Si no incluye el doctype, el navegador puede suponer que está utilizando un idioma diferente del que realmente está, lo que hace que se muestre incorrectamente.

 0
Author: George Cummins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-20 18:59:32

De W3Schools . com:

La declaración doctype no es HTML etiqueta; es una instrucción a la web navegador acerca de qué versión de la idioma de marcado la página está escrita en.

Hay un puñado de diferentes tipos de documentos, y cambiarlos puede cambiar drásticamente cómo se renderiza su página.

 0
Author: Ken Pespisa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-20 19:00:56