5568 sujets

Sémantique web et HTML

Salut à tous, je vais peut-etre me faire incendier mais je voudrais que vous m'expliquiez le principe et l'interet qu'on a à changer le doctype car je ne vois jamais de différence quand j'en change. Par contre, quand je passe au validator, ca fait mal Smiley biggol .

Par exemple une erreur souvent donnée est que je met

<link rel="stylesheet" media="screen" type="text/css" title="css_index" href="index.css">


au lieu de
<link rel="stylesheet" media="screen" type="text/css" title="css_index" href="index.css"/>


C'est quoi la différence ? Smiley biggrin
Administrateur
dans le deuxième exemple la balise est fermée par />
cela correspond typiquement à un document de type xhtml où toute balise doit être ouverte puis fermée, contrairement au html de base qui est plus laxiste.

il est donc utile de préciser via l'instruction doctype qu'il s'agit bien d'un document xhtml.

voir aussi l'excellente page à ce sujet : http://pompage.net/pompe/doctype/
Ça n'a cependant pas de rapport avec CSS quoi que puisse supposer l'exemple Smiley cligne

Je déplace donc dans le salon approprié Smiley lol

(Ça va me permettre de tester les Cool URI)
galinette a écrit :
Salut à tous, je vais peut-etre me faire incendier mais je voudrais que vous m'expliquiez le principe et l'interet qu'on a à changer le doctype car je ne vois jamais de différence quand j'en change. Par contre, quand je passe au validator, ca fait mal


Lol. Excellente questions. D'autant plus excellente que nos navigateurs n'exploitent pratiquement pas les DTD, en fait.

En pratique :

Le doctype te permet d'opter pour un des dialectes (X)HTML et de vérifier, grâce au validateur, que tu t'y tiens bien (comme tu l'as vu, le validateur lit la déclaration de type de document pour savoir selon quelles règles vérifier ta syntaxe). C'est sa fonction principale.

Accessoirement, et selon un mécanisme non standard rajouté dans les navigateurs récents (le doctype switching), le navigateur se sert du doctype pour basculer dans l'un ou l'autre de ses modes de rendu, quand il traite une page en tant que HTML, c'est à dire quand elle a le type de contenu text/html (même si celle-ci est formellement du XHTML). Les navigateurs récents ont au moins deux modes de rendu :
- le mode strict, où ils sont supposés appliquer exactement les règles définies par les standards pour l'application des CSS, pour le DOM...
- le mode Quirks, où ils appliquent chacun leur propre mode de rendu historique (et différent de l'un à l'autre). Dans ce cas, par exemple, IE applique son propre modèle de dimension des boîtes CSS.

Pour le reste des fonctions potentielles des DTD, telles que la définition des entités, des type ID... Eh bien, elles restent potentielles Smiley lol
Si j'ai bien compris, le fait d'opter pour un des dialectes (X)HTML permet de normaliser en quelque sorte ses pages, par le biais de W3C.

Mais comment se fait-il alors que lorsque je place cette balise...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

...en haut de mes pages, écrites en (X)HTML et présentées via CSS2, j'obtiens, outre cette normalisation un peu superflue, un sacré décalage graphique sous firefox (mais pas sur ie) notamment au niveau des éléments dotés d'un positionnement "relatif" comme par exemple :

h3 img
{
	position: relative;
	left: 40px;
	top: 15px;
}
tsing a écrit :
Mais comment se fait-il alors que lorsque je place cette balise...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

...en haut de mes pages, écrites en (X)HTML et présentées via CSS2, j'obtiens, outre cette normalisation un peu superflue, un sacré décalage graphique sous firefox (mais pas sur ie)


Pour la simple raison que, comme l'a dit Laurent ci-avant, les navigateurs font du DOCTYPE switching ! Dans le cas de FF, lorsque l'on utilise le DOCTYPE que tu viens de mentionné (XHTML 1.1), il passe en mode "XML" : c-à-d qu'il se met à parser ton document comme un document XML et non plus HTML, il deviens hyper stricte (par rapport a sont mode HTML !) et modifie certaine interprétation des CSS pour s'adapter à ce changement de traitement.


Smiley cligne
Jep a écrit :
Dans le cas de FF, lorsque l'on utilise le DOCTYPE que tu viens de mentionné (XHTML 1.1), il passe en mode "XML" : c-à-d qu'il se met à parser ton document comme un document XML et non plus HTML


En l'absence de type de contenu application/xhtml+xml, il ne devrait pas. Quelque-soit le doctype, un document en text/html ne peut pas être traité comme du XML. Par exemple, <html> ne doit pas générer le conteneur initial CSS à la place de <body>...

J'ai un gros doute, là, sur le comportement que tu prêtes à Firefox. Ou alors, celui-ci a un gros problème avec le doctype switching (mécanisme assez foireux en général, pour tout dire).
Si FF parsait du text/html avec DTD XHTML 1.1 en tant que XML, on en aurait plus souvent de ces zolies erreurs jaunes qui indiquent gaiement que le document est mal formé...