Du XHTML valide
Du XHTML valide
Rendre son code XHTML valide (via le Markup Validation Service du W3c) implique de respecter certaines règles comme l'écriture des balises et des attributs en minuscule, contrairement au HTML où on peut alterner les deux sans gravité.
Voici une liste, non exhaustive, des règles de bases :
a) Les balises orphelines
Les balises orphelines (hr, br, img, meta...) s'ecrivent en HTML <hr> (horizontal row), ou <br> (breaking row). En XHTML, elles s'ecrivent <hr />, <br />. Avec un / (slash) avant le > (superieur) donc. Il ne faut surtout pas oublier l'espace avant le / (slash). Sinon la balise ne serait pas reconnue par les navigateurs ne comprenant que le HTML.
b) Les attributs de balise
Certaines balises HTML contiennent des attributs qui n'ont pas de paramètres, comme l'attribut nowrap de la balise TD qui spécifie qu'il ne doit pas avoir de rupture de ligne dans la cellule. Exemple: <td nowrap>texte</td>. Le XHTML lui donne un paramètre (lui-même): <td nowrap="nowrap">texte</td>. XHTML impose le marquage de ces attributs, dans le cas où des extensions futures verraient le jour, mais également afin de permettre au langage de s'adapter aux contraintes des équipements mobiles (GSM, Pocket PC...). En XHTML tous les attributs de type nombre doivent êtres entre guillemets.
c) Fermeture des balises
La cohérence des encadrements est obligatoire. La première balise ouverte doit être la dernière fermée. Exemple : <strong><em>texte gras et en italique</em></strong>.
Au contraire du HTML, le XHTML exige de refermer toutes les balises ouvertes afin que les navigateurs sachent l'étendu de l'action de la balise influant sur la page.
d) L'attribut name est remplacé par id (identificateur) :
L'attribut name servait en HTML à nommer les ancres (a) ou les formulaires (form). Mais comme les navigateurs ne comprennent pas id, il faut utiliser les deux attributs.
e) Le type MIME (Multipurpose Internet Mail Extensions)
Exemple: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> Le XHTML devrait toujours avoir "application/xhtml+xml" pour type MIME (comme en XHTML 1.1) car il s'agit bien d'une application XML. Malheureusement, la plupart des navigateurs (sauf Firefox) n'ont pas la moindre idée de ce que c'est. En attendant, on tolère donc le type MIME "text/html". Plus d'infos...
Exemple de code XHTML Transitional valide
<!DOCTYPE html PUBLIC "-//w3c//dtd xhtml1.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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Exemple de code XHTML</title></head>
<body>
<img src="monlogo.gif" width="30" height="20" alt="Mon logo" /><br />
<h1>EASY-MICRO présente le XHTML</h1>
<hr style="width:50%;" />Patali...patala...</body></html>
<!DOCTYPE html PUBLIC "-//w3c//dtd xhtml1.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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Exemple de code XHTML</title></head>
<body>
<img src="monlogo.gif" width="30" height="20" alt="Mon logo" /><br />
<h1>EASY-MICRO présente le XHTML</h1>
<hr style="width:50%;" />Patali...patala...</body></html>