5568 sujets

Sémantique web et HTML

Bonjour,

On peut lire dans la DTD de HTML qu'une paire de o indique que les balises ouvrante et fermante peuvent être mises.

Je n'ai pas trop compris car, sans aller plus loin, cela voudrait dire que l'élément peut ne pas être présent, ce qui est le cas pour la quasi-totalité d'entre eux (et, de toutes façons, ça n'aurait aucun sens de le déclarer ainsi.)

Mais en fait, en regardant dans la DTD, je vois que cela ne concerne que les éléments <body>, <html>, <head> et <tbody>.

Donc qu'est-ce que ça signifie, ce double o ?

Merci.
Modifié par talvins (04 Dec 2007 - 10:40)
"o" signifie que la balise peut être omise.

Pour les éléments body, html, head et tbody, on peut omettre les balises d'ouverture et de fermeture car même si elles sont absentes, le parseur pourra "deviner" l'emplacement où elles se seraient trouvées. Par exemple :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title></title>

  <p>J'aime les pommes de terre.

Quand le parseur lit <p>, Il s'aperçoit qu'il est en présence d'un contenu qui n'est pas autorisé au sein de l'élément head, donc il ajoute les balises </head><body>.
Modifié par Julien Royer (03 Dec 2007 - 14:20)
Julien Royer a écrit :
"o" signifie que la balise peut être omise.


Je sais bien et c'est que je ne comprends pas dans ce cas.

Dans l'exemple que tu donnes, tu mets <html> et <head>.
Si on en croit le DTD, je pourrais donc faire :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<title>Hello</title>
<p>Bonjour tout le monde !</p>

Non ? C'est pas possible Smiley confus
talvins a écrit :

Non ? C'est pas possible Smiley confus

Hé bien si… et il y a même pire Smiley smile

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<title</title<p>
Benjamin D.C. a écrit :
Hé bien si&#8230; et il y a même pire Smiley smile

Oui, mais là c'est une syntaxe qui est déconseillée. Smiley smile

Et on peut faire encore "mieux" :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<title///

Smiley lol

@talvins : si tu veux t'en persuader, fais des tests avec le validateur du W3C. Smiley cligne
Modifié par Julien Royer (03 Dec 2007 - 16:12)
Vous oubliez que l'url du DOCTYPE peut être omise en HTML.

a écrit :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>Blabla</title>
<h1>blabla</h1>


Cette structure est conforme, valide html 4.01 strict et ne pose pas de problème pour les parsers html du marché.
Modifié par JyuniX (03 Dec 2007 - 20:06)