Hiciste todo lo que creías correcto, pero la página no se comporta correctamente en los navegadores más recientes. Esto se debe a que escribiste XHTML y CSS no válidos. Utilizaste el modelo de objetos de documento (DOM) estándar del W3C para manipular elementos dinámicos en la página. Y cuando los navegadores intentan implementar estos estándares, su sitio falla. Lo más probable es que esto se deba a un tipo de documento incorrecto (DOCTYPE). Este artículo tiene como objetivo mostrarle cómo funciona DOCTYPE y explicar algunos usos reales de estos tipos de documentos.
¿Por qué un DOCTYPE?
Según los estándares HTML y XHTML, se utiliza un DOCTYPE (abreviatura de "declaración de tipo de documento") para indicarle al navegador qué versión de (x)HTML está utilizando y debe aparecer en la parte superior de cada página. Los DOCTYPE son un componente importante de las páginas web: sin ellos, su CSS ya no será válido.
Como se menciona en el artículo de ALA mencionado anteriormente (y otros puntos interesantes también), DOCTYPE también debe adaptarse a otros navegadores, como Mozilla, IE5/Mac, o IE6 o IE7.
Un nuevo DOCTYPE contiene un URI completo (nota sconf: identificador de recursos universal, identificador de recursos universal) (una URL completa), que indica a los navegadores que analicen (presenten) la página en un modelo compatible con el estándar. Procese (X)HTML, CSS y DOM hasta obtener lo que espera.
El uso de un DOCTYPE incompleto o antiguo, o incluso ningún DOCTYPE, hará que el navegador lo convierta en un modelo "Quirks", donde el navegador asume que está escribiendo código obsoleto y roto posterior a los 90.
Con esta configuración, el navegador intentará analizar su página utilizando el estándar anterior y analizar su CSS en el estándar IE4. Y responde al propietario con un DOM especial (IE responde al DOM de IE, mientras que Mozilla y Netscape 6 responden al modelo que creen que es).
Sin duda, esto no es lo que quieres. Pero es algo que ocurre a menudo. Por eso, este artículo quiere corregir estos DOCTYPE incorrectos o incompletos.
(Nota: el navegador Opera no admite estas reglas. Siempre intenta analizar las páginas web en páginas adaptadas a los estándares. Por otro lado, Opera no proporciona un soporte sólido para el DOM del W3C. Pero también pueden funcionar bien) Ed: Dado que esto artículo se publicó por primera vez, Opera ha agregado funcionalidad compatible con DOM a Opera 7.
¿A dónde fue DOCTYPE? (¿Dónde se han ido todos los tipos de documentos?)
Aunque los tipos de documentos son una parte integral importante de los estándares WEB en los navegadores, y aunque el W3C lidera la creación de estándares WEB, también espera que los sitios del W3C puedan proporcionar algunos tipos de documentos apropiados, y es posible que también desee encontrar esta información más rápida y fácilmente. . Sin embargo, mientras escribo esto, todavía no puedes. {Ed: El W3C ahora enumera una serie de DOCTYPE estándar en su sitio web. Puede verlos en las Directrices del W3C, como "Mi sitio web es estándar. ¿Y el suyo?"}
W3.org no es List Apart, WebReference o Webmonkey. Originalmente no estaba destinado a ayudar a los diseñadores, desarrolladores y organizaciones de la sociedad civil WEB a acelerar su comprensión y uso de las últimas tecnologías. Este no es su trabajo.
El W3C publica una serie de pautas, aunque la mayoría de los diseñadores web las desconocen. #
Puede buscar DOCTYPE durante todo el día en W3.org sin tener que mirar las listas dedicadas. Y cuando descarga un DOCTYPE (generalmente relacionado con alguna propuesta específica o borrador de trabajo), no funciona correctamente en su sitio.
En todo el sitio del W3C hay DOCTYPE a los que les faltan URI (nota de sconf: URI no completos), que apuntan al propio sitio web del W3C. Una vez que se muevan del W3C a sus propias páginas web, estas URL se convertirán en documentos inexistentes.
Por ejemplo, el DOCTYPE de muchos sitios se copia directamente de W3.org:
El siguiente es el contenido citado: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Estricto//ES" |
Si ve la última parte de este DOCTYPE ("DTD/xhtml1-strict.dtd"), encontrará que se trata de un enlace relativo al sitio del W3C. Esto está en el sitio del W3C, no en el suyo. Entonces este URI no tiene ningún efecto en el navegador. (nota de desprecio: cuando visitas W3.org, esto solo funciona porque es un enlace relativo).
Este DOCTYPE en realidad debería cambiarse a:
El siguiente es el contenido citado: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Estricto//ES" |
Tenga en cuenta que el DOCTYPE detrás contiene un URI completo. Esto muestra un recurso válido en la red para que el navegador pueda encontrarlo y analizar su documento en un formato compatible con los estándares.
CÓMO USAR DOCTYPE (DOCTYPES QUE FUNCIONAN)
Entonces, ¿cómo utilizar DOCTYPE? Me alegra que hayas preguntado. El DOCTYPE completo a continuación es todo lo que necesitamos:
HTML 4.01 estricto, transicional, marco
El siguiente es el contenido citado: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//ES" " http://www.w3.org/TR/html4/strict.dtd "> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transicional//ES" " http://www.w3.org/TR/html4/loose.dtd "> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//ES" " http://www.w3.org/TR/html4/frameset.dtd "> |
Marco estricto y transicional XHTML 1.0
El siguiente es el contenido citado: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Estricto//ES" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd "> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transicional//ES" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//ES" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd "> |
XHTML1.1 DTD
El siguiente es el contenido citado: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//ES" |