5568 sujets

Sémantique web et HTML

Bonjour,

Quand on indique la référence à une dtd en début de page : que fait le navigateur ?

Est-ce qu'il se rend sur le site de référence indiqué, le w3c ?
Si oui, lit-il ou analyse t'il la dtd pour l'utiliser dans la page html ou xhtml ?
Si oui et s'il rencontre un élément non conforme à la dtd, que fait-il ?

Merci d'avance pour vos réponses.
Modifié par tannoy (06 Oct 2005 - 11:25)
Bonjour.

Le navigateur n'en a rien à cirer de la DTD, ou presque...
ça lui permet juste de choisir entre le mode de rendu standard ou à l'ancienne (quirk)...
a écrit :
le mode de rendu standard ou à l'ancienne (quirk)


qu'est-ce que ton mode de rendu standard ou à l'ancienne ?????
Basiquement, les navigateurs actuelle affiche le HTML sans DTD avec un moteur de rendu "Quirk" alors qu'avec une DTD il est affiché avec un rendu "Stendard" (Mais cela peut varier d'un navigateur à l'autre... surtout avec IE !)

Dans les fait, cette notion varie enormement d'un navigateur à l'autre. Il existe certe une différence entre les deux modes de rendu, mais cela dépend enormement de chaque navigateur. Pour faire simple, il faut comprendre que selon le mode de rendu, le navigateur va interprété différement certaines règles CSS.

Pour mieux comprendre voici un petit exemple :

Quirk (sans DTD) :
<html>
<head>
<title>TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
div{
	background : #FCC;
	width      : 200px;
}

p{
	background : #FFC;
	width      : 200px;
	padding    : 10px;
	height     : 50%;
}
</style>
</head>

<body>
<div>Test 1</div>
<p>Test 2</p>
</body>
</html>


Standard (avec DTD) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
div{
	background : #FCC;
	width      : 200px;
}

p{
	background : #FFC;
	width      : 200px;
	padding    : 10px;
	height     : 50%;
}
</style>
</head>

<body>
<div>Test 1</div>
<p>Test 2</p>
</body>
</html>


A tester avec IE6, Opera et Firefox pour vous rendre compte des différence entre ces navigateur ! (observez en particulier le model de boite qu'utilise Opera)

Smiley smile
Modifié par Jep (06 Oct 2005 - 12:33)
Bonjour,

Pour info, le doctype switching Opera (différence Quirks/Strict) est documenté ici : http://www.opera.com/docs/specs/doctype/ . On y trouvera également des liens vers les doctype switching IE et Gecko (Firefox).

L'essentiel à retenir n'est pas cependant dans ce type de page qui pourrait laisser croire qu'on peut se fier au mode de rendu quirks d'un navigateur pour établir une CSS ( ou des javascripts) fiables et pérennes : l'important est dans ceci, qui s'applique à tous les navigateurs pratiquant le doctype switching :

This will continously change with whatever standards divergences are common at any given time. The rendering in Standards Mode will always follow the standards.


En résumé :
- le mode strict est votre mode de création de pages, stable et pérenne.
- le mode quirks est le mode incertain avec lequel chaque navigateur gère à sa manière les anciennes pages. Pas vous.

Note : exemple type : contrairement à ce que laisse entendre cette page, il est probable que certaines versions d'Opera ait un 3e mode de rendu, almost-strict, à l'image des navigateurs Gecko. Rien de ce qui n'est pas mode strict n'est fiable Smiley cligne
Modifié par Laurent Denis (06 Oct 2005 - 13:14)
Je vous remercie tous pour ces infos.

Une autre petite question :

J'utilise Dreamweaver comme editeur html et quand je créé une page xhtml, il me rajoute une ligne sous la dtd :

<!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" lang="fr">


A quoi sert-elle ?

merci
le XHTML1.0 est un format hybride :
- compatible avec les moteurs de rendu HTML des navigateurs : un navigateur incapable de traiter du XML peut gérer une page XHTML1.0 comme s'il s'agissait de HTML un peu curieux.
- compatible avec les moteurs de rendu XML : un navigateur capable de traiter du XML peut aussi gérer du XHTML1.0 en tant que XML, si on lui demande gentiment de le faire à l'aide de ce qu'on appelle les types de contenu, transmis via les en-têtes HTTP (discussions entre le navigateur et le serveur avant/pendant le chargement de la page).

Cette ligne <html...> est un bon exemple de cette nature hybride et de ses difficultés :
- l'xmlns indique l'espace de nom XML qui n'a aucune utilité quand le XHTML sera traité comme du HTML, mais ne cause aucun souci non plus.
- le xml-lang relève également du traitement en tant que XML, et ne pose non plus aucun souci.
- le lang est le jumeau HTML du précédent, indiquant en HTML la langue de traitement du contenu (autrement-dit, dans quelle langue est écrit le contenu, par défaut, sauf mention contraire ici où là). Il est essentiel.

Normalement, pour respecter à la lettre les règles différenciant le XHTML1.0 traité en tant que HTML ou que XML, cette ligne devrait s'écrire :

<html lang="fr">

... pour du XHTML traité en tant que HTML (le cas le plus fréquent, celui que produisent Dreamweaver et ses utilisateurs)

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

... pour du XHTML traité en tant que XML. Cas rare, qui ne concerne pas les utilisateurs de Dreamweaver.

Donc ?
Dreamweaver génère une ligne comportant deux informations vitales (html et lang), et deux informations inutiles mais sans aucune conséquence dommageable xmlns et xml:lang).
Merci pour toutes ces infos.

Par contre, ça ne répond pas à ma 1ère question :

Le navigateur intègre t'il les différentes DTD ou est-ce qu'il se rend sur le site de référence indiqué, le w3c ?

merci
Modifié par tannoy (07 Oct 2005 - 14:25)