Vous avez fait tout ce que vous pensiez être juste, mais la page ne se comporte pas correctement dans les derniers navigateurs. En effet, vous avez écrit du XHTML et du CSS non valides. Vous avez utilisé le modèle d'objet de document (DOM) standard du W3C pour manipuler les éléments dynamiques de la page. Et lorsque les navigateurs tentent d’implémenter ces normes, votre site échoue. Cela est probablement dû à un type de document incorrect (DOCTYPE). Cet article a pour but de vous expliquer le fonctionnement de DOCTYPE et d'expliquer une utilisation réelle de ces types de documents.
Pourquoi un DOCTYPE ?
Selon les standards HTML et XHTML, un DOCTYPE (abréviation de « déclaration de type de document ») est utilisé pour indiquer au navigateur quelle version de (x)HTML vous utilisez et doit apparaître en haut de chaque page. Les DOCTYPEs sont un composant important des pages web : sans eux, votre CSS ne sera plus valide.
Comme mentionné dans l'article ALA mentionné précédemment (et d'autres points intéressants également), DOCTYPE doit également être adapté à d'autres navigateurs, comme Mozilla, IE5/Mac, ou IE6 ou IE7.
Un nouveau DOCTYPE contient un URI complet (Remarque sconf : Universal Resource Identifier, Universal Resource Identifier) (une URL complète), qui indique aux navigateurs d'analyser (rendre) la page dans un modèle compatible avec la norme. Traitez (X)HTML, CSS et DOM selon vos attentes.
L'utilisation d'un DOCTYPE incomplet ou ancien, ou même de l'absence de DOCTYPE du tout, amènera le navigateur à le convertir en un modèle « Quirks », dans lequel le navigateur suppose que vous écrivez du code post-90 obsolète et cassé.
Avec ce paramètre, le navigateur tentera d'analyser votre page en utilisant l'ancienne norme et d'analyser votre CSS dans la norme IE4. Et répond au propriétaire avec un DOM spécial (IE répond au DOM d'IE, tandis que Mozilla et Netscape 6 répondent au modèle qu'ils pensent être).
Ce n’est sans doute pas ce que vous souhaitez. Mais c’est quelque chose que l’on rencontre souvent. Cet article souhaite donc corriger ces DOCTYPEs incorrects ou incomplets.
(Remarque : le navigateur Opera ne prend pas en charge ces règles. Il essaie toujours d'analyser les pages Web en pages adaptées aux normes. D'un autre côté, Opera ne fournit pas un support solide pour le DOM du W3C. Mais ils peuvent également bien fonctionner.) Ed : Depuis cela Après la première publication de cet article, Opera a ajouté une fonctionnalité compatible DOM à Opera 7.
Où est passé DOCTYPE ? (Où sont passés tous les doctypes ?)
Bien que les types de documents constituent une partie intégrante importante des normes WEB dans les navigateurs, et bien que le W3C soit à la tête de la création de normes WEB, vous vous attendez également à ce que les sites du W3C puissent fournir certains types de documents appropriés, et vous souhaiterez peut-être également trouver ces informations plus rapidement et plus facilement. . Cependant, au moment où j’écris ceci, vous ne pouvez pas encore. {N.D. : Le W3C répertorie désormais une série de DOCTYPEs standards sur son site Web. Vous pouvez les voir dans les directives du W3C, par exemple "Mon site Web est standard. Et le vôtre ?"}
W3.org n'est pas un List Apart, un WebReference ou un Webmonkey. Il n'était pas initialement destiné à aider les concepteurs WEB, les développeurs et les organisations de la société civile à accélérer leur compréhension et leur utilisation des dernières technologies. Ce n'est pas son travail.
Le W3C publie une série de lignes directrices, même si la plupart des concepteurs de sites Web ne les connaissent pas. #
Vous pouvez rechercher des DOCTYPEs à longueur de journée sur W3.org sans avoir à consulter les listes dédiées. Et lorsque vous téléchargez un DOCTYPE (généralement lié à une proposition spécifique ou à un brouillon de travail), il ne fonctionne pas correctement sur votre site.
Tout au long du site du W3C se trouvent des DOCTYPEs avec des URI manquants (note sconf : URI non complets), qui pointent vers le propre site Web du W3C. Une fois celles-ci déplacées du W3C vers vos propres pages Web, ces URL deviendront des documents inexistants.
Par exemple, le DOCTYPE de nombreux sites est directement copié de W3.org :
Voici le contenu cité : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
Si vous voyez la dernière partie de ce DOCTYPE ("DTD/xhtml1-strict.dtd"), vous constaterez qu'il s'agit d'un lien relatif vers le site du W3C. C'est sur le site du W3C, pas sur le vôtre. Cet URI n’a donc aucun effet sur le navigateur. (note sconf : lorsque vous visitez W3.org, cela ne fonctionne que parce qu'il s'agit d'un lien relatif).
Ce DOCTYPE devrait en fait être remplacé par :
Voici le contenu cité : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
Notez que le DOCTYPE derrière contient un URI complet. Cela affiche une ressource valide sur le réseau afin que le navigateur puisse la trouver et analyser votre document sous une forme conforme aux normes.
COMMENT UTILISER DOCTYPE (DOCTYPES QUI FONCTIONNENT)
Alors comment utiliser DOCTYPE ? Heureux que vous ayez demandé. Le DOCTYPE complet ci-dessous est tout ce dont nous avons besoin :
HTML 4.01 strict, transitionnel, cadre
Voici le contenu cité : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd "> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd "> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" " http://www.w3.org/TR/html4/frameset.dtd "> |
Cadre XHTML 1.0 strict, transitionnel
Voici le contenu cité : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd "> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd "> |
XHTML1.1 DTD
Voici le contenu cité : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |