Aller au contenu

Un problème avec le Doctype


Nullette

Sujets conseillés

Bonjour,

l'autre jour j'ai voulu faire une vérification de mon site (je ne me souviens plus quel outil j'ai utilisé) et j'ai eu le signalement que mon Doctype n'était pas correct.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

Je l'ai donc modifié (sur une seule page) suivant l'indication :

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">

Or, après avoir ajouté la première ligne <?xml ...>

La page se place à gauche, au lieu d'être au milieu ! Ceci avec Internet Explorer 6.

Quelle est donc l'explication ? Dois-je éviter de rajouter la première ligne ?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Ah si seulement IE 6 n'existait plus... :evil:

En bref

- la présence du doctype n'est obligatoire que pour la validation, il est indispensable pour que le validateur sache quelle syntaxe respecter

- avec les navigateurs modernes, la présence du doctype fait basculer le navigateur en mode strict (respect des standards), son absence le fait basculer en mode Quirks (mode de compatibilité avec un code non standard)

Je me cite

Mais si le navigateur passe en mode Strict ou en mode Quirks selon le doctype annoncé, ce n'est pas celui-ci qui indique le langage de balisage utilisé au navigateur. Ce rôle est tenu par l'en-tête du protocole HTTP, le Content-Type (qui peut aussi contenir des informations relatives à l'encodage des caractères).

Même si le doctype annonce une page en XHTML, il sera interprété comme du HTML si l'entête annonce Content-Type: text/html;

A moins d'avoir des besoins spécifiques, le XHTML 1.0 sera servi en text/html et non en application/xhtml+xml (type MIME envoyé par le serveur dans les en-têtes HTTP).

Dans ce cas, le prologue <?xml version="1.0" encoding="utf-8"?> est inutile et provoque des bugs d'affichage avec IE 6. Il ne doit donc pas être utilisé.

Un peu de lecture pour mieux comprendre (doctype, type MIME, prologue...) :

- qui ne supporte pas xhtml 1 ?, navigateurs incompatibles

- Les déclarations « Doctype » et les en-têtes « Content-type »

- Doctype et content-type

- Comment bien déclarer du XHTML 1.0 et du XHTML1.1?

- Choix d'une DTD: le doctype switching n'est pas pour nous

- doctype : indispensable ou pas ?

Lien vers le commentaire
Partager sur d’autres sites

Merci beaucoup Monique pour toutes ces explications.

J'ai donc retiré xml, car j'ai encore pas mal de visiteurs (de l'étranger) qui utilisent IE6.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...