Declaramos Doctype en HTML generalmente tiene los siguientes tipos:
<
<! Doctype html public -// w3c // dtd xhtml 1.0 Strict // en http://www.w3.org/tr/xhtml1/dtd/xhtml1strict.dtd>
<! Doctype html public -// w3c // dtd html 4.01 // en http://www.w3.org/tr/html4/strict.dtd>
<! Doctype html público -// w3c // dtd html 4.01 transitional // en http://www.w3.org/tr/html4/loose.dtd>
Sí, aquí hay HTML y XHTML, y también hay transición y estricta. Como su nombre indica, XHTML significa que este documento está escrito en formato XML, y HTML significa que este documento está escrito en el formato HTML. La transición significa que este documento cumple con los requisitos de transición.dtd o suelto.dtd, mientras que Strict significa que este documento cumple con los requisitos de Strict.dtd. Pero de hecho, a menudo tenemos los siguientes malentendidos:
(1) Mi documento se declara XHTML, entonces mi documento debe estar exactamente en formato XML.
(2) Mi documento se declara estricto, por lo que mi documento debe representarse de la manera estricta, de lo contrario, se representa en el modo de peculiaridades.
Ambos entendimientos son muy directos, pero están equivocados, y a menudo cometemos tales errores.
Primero, el documento se declara como XHTML y HTML, y no tiene una correlación directa con el análisis del documento (es decir, el análisis del documento del navegador). De hecho, cómo el documento de análisis del navegador depende del formato que el servidor proporcione el documento. En términos generales, hay dos formas: texto/html y aplicación/xhtml xml. Solo los documentos proporcionados en la aplicación/HTML XML pueden analizarse en XML. Sin embargo, debido a las razones históricas del navegador, no todos los navegadores admiten la aplicación/documentos de formato XML XHTML. Las versiones antes de IE7 (incluido IE7) no pueden soportar este formato. Si IE7 encuentra un documento en este formato, le pedirá al usuario que guarde como otros archivos. Teniendo en cuenta el uso generalizado de IE, la mayoría de los documentos se proporcionan actualmente en texto/HTML. Los documentos proporcionados en Text/HTML son analizados de acuerdo con la semántica de HTML. Todos saben que HTML es muy tolerante a fallas. Incluso si la etiqueta en su documento no está cerrada correctamente, el HTML se puede mostrar correctamente. Por lo tanto, si su XHTML se proporciona en texto/html (en la mayoría de los casos), incluso si declara XHTML en Doctype, su documento no se analiza en formato XML, por lo que no puede garantizar que su documento esté estrictamente de acuerdo con las especificaciones XML. De hecho, muchos expertos sugieren que si su documento no se proporciona en forma de aplicación/XHTML XML, entonces debe declararlo como HTML.
En segundo lugar, la forma en que el navegador representa su documento no está determinado por el DTD que declara. De hecho, si declara DocType y DTD, su documento se representa en modo estricto (o modo estándar, muchos navegadores también incluyen el modo casi estándar, y no hay distinción aquí). Para documentos sin DocType, el modo Quirks se usa para renderizar. Por lo tanto, el modo de renderizado del navegador no tiene una relación directa con el DTD que declaró.
Finalmente, ya sea que lo declares como estricto.dtd o transitional.dtd, parece que no hay diferencia en los navegadores actuales. Strict.dtd es mucho más estricto que Transitional.dtd o Loose.dtd, y muchos elementos no pueden usarse en Strict.dtd. Sin embargo, debido a la compatibilidad del navegador, incluso si declara Strict.dtd en Doctype, el navegador aún puede mostrar su documento correctamente al encontrar elementos que no están permitidos en Strict.dtd. Supongo que el navegador no tiene en cuenta DTD. Por ejemplo, la etiqueta de iframe no existe en Strict.dtd, pero incluso si su doctype declara Strict.dtd y luego usa la etiqueta de iframe, el navegador (incluidos IE7, IE8, FF3.0, Safari 3.0) puede mostrar correctamente su documento. El navegador no analiza su documento de acuerdo con el DTD que declaró. En la actualidad, puede garantizar que su documento cumpla con Strict.dtd o Transitional.dtd. Solo se puede analizar a través de algunos validadores en línea, como el validador W3C. El navegador no puede proporcionarle un buen apoyo. Por supuesto, de hecho, si puede escribir su documento estrictamente de acuerdo con el DTD que declara, es mejor, para que su documento no produzca errores cuando el navegador respeta estrictamente DTD en el futuro.
por lo tanto,
(1) Si su documento se proporciona en texto/html, entonces debe declararlo como HTML. Si desea que IE7 se muestre correctamente, entonces debe hacerlo aún más.
(2) Si su documento se declara como XHTML, entonces debe proporcionarlo en forma de aplicación/HTML XML.
(3) Intente declarar Doctype y Dtd frente a su documento, para asegurarse de que no use el modo Quirks para representar el documento.
(4) Si declara DTD, entonces debe escribir su documento estrictamente de acuerdo con los requisitos de DTD. Especialmente si declara Strict.dtd, entonces debe tener cuidado con qué elementos no se pueden usar.
Nota: Con el tiempo, el soporte del navegador para HTML y XHTML, Strict.dtd y Transitional.dtd será mejor. Si su navegador es mucho más alto que IE7, IE8, FF 3.0 y Safari 3.0, entonces debe prestar atención a la aplicabilidad de este artículo.