Dans le Web moderne on parle de plus en plus de séparation entre la structure et la présentation des documents Web. On va donc commencer par définir ces deux termes : la structure et la présentation d'un document Web.
Le XHTML est un langage qui permet de créer la structure et le contenu d'un document Web. Il ne permet en aucun cas de créer sa présentation.
Maintenant que les notions de bases sont acquises, on va passer à la pratique.
Grossièrement, un document Web est constitué de contenu, de balises, et d'attributs. Le contenu du document est le texte, les images, les vidéos, la musique ... que l'on met dans notre document. Les balises servent à structurer ce contenu et les attributs permettent de préciser la signification des balises.
Commençons donc par définir les mots balise et attribut :
<strong> est une balise ouvrante tandis que
</strong> est une balise fermante, dans cet exemple
strong est le nom de notre balise.<div
id="menu">, id est un attribut de
la balise ouvrante div dont la valeur est menu (les
doubles guillemets sont importants autour de la valeur).Le XHTML est basé sur XML, il hérite donc de sa syntaxe. Voila les principales règles à retenir :
<html>...</html>. Les balises n'ayant pas de
contenu doivent être fermé en rajoutant /> à la fin de la
balise. ex: <img src="..." alt="..."
/><html> et pas <HTML><div
id="menu">Voila maintenant un exemple concret de contenu structuré à l'aide de balises :
<body> <h1>L'Osmose</h1> <h2>Définition</h2> <p><strong>Osmose :</strong> phénomène de diffusion à travers une membrane semi-perméable ...</p> <h2>Démonstration</h2> <p>Versez 200ml d'eau douces dans deux récipients identiques et transparents ...</p> </body>
La balise <body> est la racine de notre structure :
c'est elle qui englobe toutes les autres balises. Les balises
<h1>, <h2>, et <p>
sont des balises filles de <body>, elles sont contenues
par la balise <body>. La balise
<strong> est une descendante directe de sa balise mère
<p>. On a donc bien une structure arborescente :
+ body
+ h1
+ h2
+ p
+ strong
+ h2
+ p
Nous verrons un peu plus loin ce que signifie les différentes balises que nous venons d'utiliser dans notre exemple : body, h1, h2, p, strong.
Voici à quoi ressemble un document XHTML vide :
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> </html>
Le contenu du document se trouvera alors entre les balises
<html> et </html>.
L'attribut encoding="ISO-8859-1" signifie que l'on va utiliser des caractères français pour écrire notre document. (en réalité ce n'est pas tout a fait juste, je ferais plus tard un article pour expliquer les nuances des jeux de caractères)
Un élément obligatoire dans un document XHTML est son
titre. On donne le titre du document dans une partie appelée
en-tête. L'en-tête se situe au début du document (après la balise
<html>) ; elle est délimitée par les balises
<head> et </head>.
Le titre est défini à l'aide de la balise title. Voici un
exemple :
<head> <title>Titre du document</title> </head>
Finalement voici le code XHTML correspondant à notre exemple précédent :
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>L'Osmose</title>
</head>
<body>
<h1>L'Osmose</h1>
<h2>Définition</h2>
<p><strong>Osmose :</strong> phénomène de diffusion à travers une membrane semi-perméable ...</p>
<h2>Démonstration</h2>
<p>Versez 200ml d'eau douces dans deux récipients identiques et transparents ...</p>
</body>
</html>
Pour tester ce document, vous pouvez copier le code dans un fichier texte vide (vous pouvez le nommer document.html) puis vérifiez qu'il s'affiche dans votre navigateur favoris (je vous conseil mozilla).
On a vu précédemment que les balises permettent d'organiser le document,
de le structurer. Mais cette structure n'est bien entendu pas innocente,
chaque éléments de la structure a une signification, une nature, une
sémantique. Connaître la sémantique des éléments permet d'utiliser des
balises qui vont enrichir le document, utiliser des balises génériques pour
structurer chaque partie de son document ne va par contre rien apporté en
terme de compréhension. En effet, on voit de plus en plus sur le Web
l'utilisation abusive de la balise <div> qui permet de
structurer son documents en bloques génériques n'ayant pas de sémantique.
L'utilisation des balises génériques doit être évitée quand une balise
équivalente (avec sémantique) existe. Ne pas utiliser la sémantique c'est se
priver d'un niveau de compréhension du document. Pour s'en convaincre il
suffit d'imaginer un aveugle lisant votre document en braille, pour lui les
informations sémantiques des balises sont très importantes !
Je vais maintenant lister les différentes balises les plus utilisées dans la rédaction d'un document Web, en expliquer le sens et montrer dans quel contexte on peut les utiliser.
<h1>, <h2>, <h3> <h4>,
<h5>, et <h6>Exemple :
<h1>L'Osmose</h1>
<p>Exemple :
<p>Cette semaine, en lien avec l'actualité</p>
<a href=""><a> qui se nomme href dont la valeur
est l'URL du document cible.
Exemple :
<a href="http://www.w3.org">Le site du W3C</a>
<img alt="" src="" /><img>.
L'attribut src permet de référencer le fichier de l'image
(de la même façon que pour les liens). Un autre attribut important et
obligatoire est alt (alterné) : c'est un texte décrivant
le contenu de l'image. Le texte alterné permet de remplacer l'image si
celle ci n'est pas accessible, il est utilisé sur les terminaux textes
et pour les déficients visuels.
Exemple :
<img alt="Logo de mon site Web" src="logo.png"/>
<ul>, <li><ul> et
terminent par un </ul>. Chaque élément de la liste
est contenu dans une balise <li>.
Exemple :
<ul>
<li>Element 1</li>
<li>Element 2</li>
<li>Element 3</li>
</ul>
<ol>, <li><ol> et finissent par
</ol>.
Exemple :
<ol>
<li>Element 1</li>
<li>Element 2</li>
<li>Element 3</li>
</ol>
<dl>, <dt>,
<dd><dl> et
finissent par un </dl>. Chaque terme décrit est
contenu dans une balise <dt> et la description est
contenue dans une ou plusieurs balises <dd>.
Exemple :
<dl>
<dt>Cosmologie</dt>
<dd>La cosmologie est la tentative d'étudier la forme et
l'évolution de l'Univers dans son ensemble.</dd>
<dt>Entropie</dt>
<dd>L'entropie est la quantité physique qui mesure
le degré de désordre d'un système.</dd>
</dl>
<div>Exemple :
<div id="menu">
<ul>
<li>Accueil</li>
<li>Actualités</li>
<li>Météo</li>
</ul>
</div>
Il existe encore beaucoup de balises que je n'ai pas évoqués et je compléterai certainement la liste plus tard. Si vous voulez une liste exhaustive, vous pouvez aller piocher directement dans les spécification XHTML du W3C (ici en français).
Personne n'est à l'abri de faire des erreurs, il est donc important de vérifier que son documents ne comporte pas d'erreurs au niveau de la syntaxe et de sa structure avant de le publier.
Le W3C propose un outil en ligne qui permet de vérifier ses documents très simplement. Voici le lien : Validateur du W3C. Vous pouvez l'utiliser de deux façons : en envoyant votre document local sur le site, ou en donnant l'URL de votre document online.
Cet article nous a permis de comprendre la notion de structure dans un document Web. La prochaine étape sera de comprendre comment le présenter : on verra dans un prochain article que le langage CSS est fait pour ça. Voila j'ai terminé cette introduction au XHTML, j'espère avoir été assez clair. N'hésitez pas à me faire part de vos remarques dans le forum.
Dernière mise à jour le 2005/04/14 12:11