<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://openweb.eu.org/dtd/docbkx42/docbookx.dtd">
<article lang="fr" role="article" id="xhtml_une_heure">
  <articleinfo>
    <title>
      <acronym>XHTML</acronym> en une heure</title>
      <pubdate>2003-03-21</pubdate>
      <date>2003-03-21</date>
      <author>
      <firstname>Olivier</firstname>
      <surname>Meunier</surname>
      <email>olivier.meunier@openweb.eu.org</email>
    </author>
    <legalnotice>
      <para>Cet article est sous licence <ulink url="http://creativecommons.org/licenses/by-sa/1.0/legalcode">Creative Commons Attribution-ShareAlike</ulink>.</para>
    </legalnotice>
    <abstract>
      <para> Une rapide introduction à <acronym>XHTML</acronym>, qui vous permettra de faire vos premières armes avec ce langage de description.</para>
    </abstract>
    <subjectset>
      <subject role="profil">
        <subjectterm>debutant</subjectterm>
        <subjectterm>expert</subjectterm>
      </subject>
      <subject role="technologie">
        <subjectterm>xhtml</subjectterm>
      </subject>
      <subject role="theme">
        <subjectterm>structure</subjectterm>
      </subject>
    </subjectset>
  </articleinfo>
  <para>Ce texte est une rapide introduction à <acronym>XHTML</acronym>. Il vous permettra de faire vos premières armes avec ce langage de description. Pour écrire en <acronym>XHTML</acronym>, vous pouvez utiliser un simple éditeur de texte plus ou moins évolué. Si comme certaines personnes vous préférez utiliser un éditeur <acronym>HTML</acronym> compatible <acronym>XHTML</acronym>, ce guide vous permettra de comprendre ce qui se passe au niveau du code <acronym>HTML</acronym>.</para>
  <para>Je ne vais pas vous expliquer comment convertir votre code <acronym>HTML</acronym> en <acronym>XHTML</acronym>, d'autres l'ont déjà fait. Je vais seulement considérer que vous n'avez jamais écrit de code <acronym>XHTML</acronym> (ou même <acronym>HTML</acronym>) et vous expliquer les bases de la création d'une page Web.</para>
  <section id="creation">
    <title>Création d'un document, déclaration <acronym>XML</acronym> et <acronym>DTD</acronym></title>
    <para>Un document <acronym>XHTML</acronym> étant un document <acronym>XML</acronym> il commence par une déclaration <acronym>XML</acronym> indiquant la version et le jeu de caractère utilisé. Ensuite vous devrez spécifier quelle <acronym>DTD</acronym> vous comptez utiliser avec votre document.</para>
    <note>
      <para>Une <acronym>DTD</acronym> est un document dans lequel est décrite la manière d'utiliser les différentes balises. Voir à ce propos <ulink url="http://css.alsacreations.com/Bases-et-indispensables/DTD-comment-choisir">Les <acronym>DTD</acronym> <acronym>HTML</acronym>4.01 et <acronym>XHTML</acronym>1.0 : comment choisir ?</ulink></para>
    </note>
    <para>Voici donc à quoi ressemble un document <acronym>XHTML</acronym> vide&#160;:</para>
    <programlisting>
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;/html&gt;
    </programlisting>
    <para>Le contenu de votre document se trouvera alors entre les balises <token>&lt;html&gt;</token> et <token>&lt;/html&gt;</token>.</para>
    <para>On utilise le jeu de caractère <emphasis><acronym>ISO</acronym>-8859-1</emphasis> qui correspond au jeu français. On aurait pu utiliser n'importe quoi d'autre tel que <acronym>UTF</acronym>-8 par exemple.</para>
  </section>
  <section id="elements">
    <title>Eléments, balises, attributs</title>
    <para>Dans ce document nous allons parler d'éléments, de balises et d'attributs. Ces notions ont leur sens propre en <acronym>XHTML</acronym>, sens que nous allons expliciter&#160;:</para>
    <variablelist>
      <varlistentry>
        <term>Élément</term>
        <listitem><para>Nom, notion abstraite.</para></listitem>
      </varlistentry>
      <varlistentry>
      <term>Balise</term>
      <listitem>
        <para>Forme concrète d'un élément. On parlera aussi de balise ouvrante et fermante. Par exemple <token>&lt;html&gt;</token> est la balise ouvrante de l'élément <token>html</token>.</para>
      </listitem>
      </varlistentry>
      <varlistentry>
        <term>Attribut</term>
        <listitem>
          <para>Un attribut est une propriété d'un élément. Il permet de préciser le rôle ou certaines propriétés d'une balise dans le document.</para>
        </listitem>
      </varlistentry>
    </variablelist>
    <para>Voici un exemple d'application de l'attribut <token>xmlns</token> à l'élément <token>html</token>&#160;:</para>
    <programlisting>
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;/html&gt;
    </programlisting>
    <para>Les balise et les attributs suivent quelques règles simples&#160;:</para>
    <itemizedlist>
      <listitem><para>les noms des balises doivent être écrits en minuscules&#160;;</para></listitem>
      <listitem><para>toute balise ouverte est fermée (par exemple <token>&lt;html>...&lt;/html></token>)&#160;;</para>     </listitem>
      <listitem><para>les noms des attributs doivent être écrits en minuscules&#160;;</para></listitem>
      <listitem><para>les valeurs des attributs doivent être entre guillemets doubles.</para></listitem>
    </itemizedlist>
  </section>
  <section id="titre">
    <title>Titre du document et en tête</title>
    <para>La première chose à faire lorsque l'on crée un document quel qu'il soit est de lui donner un titre. En <acronym>HTML</acronym> on donne le titre du document dans une partie appelée <emphasis>en-tête</emphasis>. L'en-tête se situe au début du document (après la balise <acronym>&lt;html&gt;</acronym>)&#160;; elle est délimitée par les balises <token>&lt;head&gt;</token> et <token>&lt;/head&gt;</token>. Elle contient des informations qu'un navigateur n'affichera généralement pas dans son espace d'affichage mais qui pourront être utilisées à des fins diverses.</para>
    <para>Le titre est défini à l'aide de l'élément <token>title</token> comme dans l'exemple suivant&#160;:</para>
    <programlisting>
&lt;head&gt;
  &lt;title&gt;Titre de mon document&lt;/title&gt;
&lt;/head&gt;
    </programlisting>
    <para>Pour tester ce que nous venons d'expliquer, créez un document <replaceable>test.html</replaceable> dans lequel vous copierez le code suivant&#160;:</para>
    <programlisting>
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
  &lt;head&gt;
    &lt;title&gt;Titre de mon document&lt;/title&gt;
  &lt;/head&gt;
&lt;/html&gt;
    </programlisting>
    <para>Les navigateurs Web affichent généralement le titre dans la barre de titre de la fenêtre.</para>
  </section>
  <section id="corps">
    <title>Corps du document, titres et paragraphes</title>
    <para>Le corps du document est la zone que l'on va trouver après l'en-tête. Il est défini par l'élément <token>body</token>.</para>
    <para>Les titres sont au nombre de 6, chacun ayant un niveau d'importance. Le plus haut niveau d'importance est le titre <token>h1</token>, suivit de <token>h2</token> et ainsi de suite jusqu'à <token>h6</token>. Ces niveaux sont largement suffisants pour couvrir l'ensemble de vos besoins les plus courants.</para>
    <para>Un paragraphe est défini par l'élément <token>p</token>. Il sera affiché avec un espacement avant et après, permettant ainsi une bonne séparation des paragraphes entre eux et avec le reste des éléments du document.</para>
    <para>Voici un exemple de titres et paragraphes, vous pouvez le copier dans votre document précédemment créé, juste en dessous de la balise <token>&lt;/head&gt;</token>&#160;:</para>
    <programlisting>
&lt;body&gt;
  &lt;h1&gt;Titre très important&lt;/h1&gt;
  &lt;p&gt;Paragraphe.&lt;/p&gt;
  &lt;h2&gt;Titre moins important&lt;/h2&gt;
  &lt;p&gt;Second paragraphe un peu plus long
  que le premier.&lt;/p&gt;
&lt;/body&gt;
    </programlisting>
    <note>
      <para>En <acronym>XHTML</acronym> (et <acronym>HTML</acronym>) les retours à la ligne sont considérés comme des espaces. Plusieurs espaces ou retours à la ligne <emphasis>consécutifs</emphasis> ne donneront pour résultat qu'une seule et unique espace (faites l'essai).</para>
    </note>
  </section>
  <section id="emphase">
    <title>Emphase</title>
    <para>Il arrive que certains mots aient besoin d'être mis en évidence. On appelle cela l'emphase. Pour mettre un ou plusieurs mots en emphase, on utilise l'élément <token>em</token>. Généralement, cela aura pour effet de mettre le texte en question en italique. Sur un navigateur textuel comme Lynx, cela soulignera le mot.</para>
    <para>Pour mettre un texte en forte emphase, on utilisera l'élément <token>strong</token>. Cela aura pour effet de mettre le texte en gras.</para>
  </section>
  <section id="liens">
    <title>Faire des liens</title>
    <para>L'aspect le plus intéressant du Web est cette formidable capacité à créer des liens de pages en pages, de sites en sites. Pour créer un lien on utilise l'élément <token>a</token>. Pour créer un lien vers un fichier <replaceable>test2.html</replaceable> se trouvant dans le même répertoire que votre fichier <replaceable>test.html</replaceable> il suffira de faire comme dans l'exemple suivant&#160;:</para>
    <programlisting>&lt;a href="test2.html"&gt;Second fichier test&lt;/a&gt;</programlisting>
    <para>Le navigateur affichera généralement le lien en bleu et le soulignera. Pour faire un lien vers un autre site Web on écrira le code suivant&#160;:</para>
    <programlisting>&lt;a href="http://www.w3.org/"&gt;Le W3C&lt;/a&gt;</programlisting>
    <note>
      <para>Il est bien sûr possible de faire des liens vers autre chose qu'une page <acronym>HTML</acronym>. Vous pouvez faire des liens vers des fichiers audio, des documents textes, etc.</para>
    </note>
  </section>
  <section id="images">
    <title>Insérer des images dans vos documents</title>
    <para>Afin de rendre vos documents plus attrayants, vous pouvez y insérer des images à l'aide de l'élément <token>img</token>. Admettons que vous possédiez une photo de votre ami Tristan en train de s'amuser avec un Lézard en plastique (simple hypothèse), le fichier de cette image s'appelant <replaceable>tristan.jpg</replaceable>, voici le code à écrire pour insérer l'image dans votre page&#160;:</para>
    <programlisting>&lt;img src="tristan.jpg" width="180" height="130" /&gt;</programlisting>
    <para>Cet élément est intéressant à plus d'un titre&#160;; il vous montre comment insérer une image dans un document et la syntaxe correcte en <acronym>XHTML</acronym> pour un élément ne possédant <emphasis role="strong">pas de balise fermante</emphasis>. L'élément <token>img</token> ne contient, en effet aucun texte, il est donc inutile de le fermer (bien que cela soit possible et correct mais plus long). Il est donc nécessaire de respecter la syntaxe <acronym>XML</acronym> pour les éléments à balise unique, syntaxe consistant à ajouter un <token>/</token> à la fin du marqueur. On ajoute également un espace avant ce dernier pour permettre aux anciens navigateurs de comprendre la syntaxe du marqueur.</para>
    <para>L'exemple précédent n'est pas correct car il manque une information capitale. Dans le cas précédent, si votre visiteur ne peut pas lire les images car il ne possède qu'un navigateur textuel ou vocal (ou bien car un serveur mandataire très intelligent filtre les contenus tendancieux de personnes pratiquant les jeux avec des lézards), il est indispensable de lui fournir un texte décrivant votre image. Voici donc la manoeuvre avec l'attribut <token>alt</token>&#160;:</para>
    <programlisting>&lt;img src="tristan.jpg" width="180" height="130"
alt="Tristan jouant avec un lézard en plastique"/&gt;</programlisting>
    <para>Avec cet exemple, vos visiteurs savent de quoi il s'agit, ce qui est bien mieux, surtout s'ils ne peuvent afficher les images. Si jamais vous aviez besoin d'en dire beaucoup plus sur votre image, si par exemple, vous présentez un graphique avec courbe, camembert (ou bien si vous en savez plus long sur l'affaire du lézard) vous pouvez écrire un fichier <acronym>HTML</acronym> externe détaillant précisément votre image. Voici comment indiquer dans votre image l'emplacement des longues explications sur le comportement singulier de votre ami Tristan, explications que vous aurez pris soin d'écrire dans le fichier <replaceable>tristan.html</replaceable>&#160;:</para>
    <programlisting>&lt;img src="tristan.jpg" width="180" height="130"
alt="Tristan jouant avec un lézard en plastique"
longdesc="tristan.html" /&gt;</programlisting>
    <para>Vous pouvez aussi faire d'une image un lien hypertexte. Par exemple le logo de votre organisation servant de lien pour revenir à la page d'accueil&#160;:</para>
    <programlisting>&lt;a href="/"&gt;&lt;img src="logo.gif" width="180" height="130"
alt="Logo de l'organisation" /&gt;&lt;/a&gt;</programlisting>
  </section>
  <section id="listes">
    <title>Des listes</title>
    <para>Les listes sont des outils bien utiles pour présenter des informations. <acronym>XHTML</acronym> en offre 3 types différents. Le premier type de liste est la liste non ordonnée, autrement appelée liste à puces. En voici un exemple&#160;:</para>
    <programlisting>
&lt;ul&gt;
  &lt;li&gt;1er élément&lt;/li&gt;
  &lt;li&gt;2ème élément&lt;/li&gt;
  &lt;li&gt;3ème élément&lt;/li&gt;
&lt;/ul&gt;
    </programlisting>
    <para>Ce type de liste sera présenté avec des petites puces avant le texte de chaque élément. Le second type de liste est la liste ordonnée&#160;:</para>
    <programlisting>
&lt;ol&gt;
  &lt;li&gt;1er élément&lt;/li&gt;
  &lt;li&gt;2ème élément&lt;/li&gt;
  &lt;li&gt;3ème élément&lt;/li&gt;
&lt;/ol&gt;
    </programlisting>
    <para>Cette liste ne sait pas mieux ranger ou faire le ménage que l'autre, elle doit uniquement son nom au fait qu'elle affiche un numéro au lieu d'un puce avant le texte de chaque élément. Enfin, le dernier type de liste est la liste de définition, permettant de créer des listes possédant un terme et sa définition&#160;; jugez plutôt&#160;:</para>
    <programlisting>
&lt;dl&gt;
  &lt;dt&gt;Premier terme&lt;/dt&gt;
  &lt;dd&gt;Définition du premier terme.&lt;/dd&gt;
  &lt;dt&gt;Second terme&lt;/dt&gt;
  &lt;dd&gt;Définition du second terme.&lt;/dd&gt;
&lt;/dl&gt;
    </programlisting>
    <para>Ce dernier type de liste est généralement affiché avec la définition en retrait du terme.</para>
  </section>
  <section id="tableaux">
    <title>Des tableaux</title>
    <para>Longtemps, les tableaux ont été utilisés pour effectuer la mise en page des éléments d'une page Web. Qu'on se le dise, cette période n'est plus. Cependant, les tableaux sont toujours utiles pour présenter des informations de manière plus claire que dans une liste ou des paragraphes.</para>
    <section id="simples">
      <title>Tableaux simples</title>
      <para>Un tableau <acronym>HTM</acronym>L est découpé en lignes contenant des cellules. Le nombre de cellules dans chaque ligne doit être le même, ou alors il est nécessaire de spécifier des options de recouvrement. Voici un exemple de tableau très simple&#160;:</para>
      <programlisting>
&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;ligne 1, colonne 1 (en-tête)&lt;/th&gt;
    &lt;th&gt;ligne 1, colonne 2 (en-tête)&lt;/th&gt;
    &lt;th&gt;ligne 1, colonne 3 (en-tête)&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;ligne 2, colonne 1&lt;/td&gt;
    &lt;td&gt;ligne 2, colonne 2&lt;/td&gt;
    &lt;td&gt;ligne 2, colonne 3&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;ligne 3, colonne 1&lt;/td&gt;
    &lt;td&gt;ligne 3, colonne 2&lt;/td&gt;
    &lt;td&gt;ligne 3, colonne 3&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
      </programlisting>
      <para>Les balises <token>&lt;tr&gt;</token> et <token>&lt;/tr&gt;</token> délimitent les lignes du tableau. Dans la première ligne, la balise <token>&lt;th&gt;</token> désigne des cellules d'un type particulier&#160;: elles ne contiennent pas de données, mais l'en-tête (ou titre) des colonnes correspondantes. Dans les lignes suivantes, <token>&lt;td&gt;</token> spécifie les cellules de données.</para>
    </section>
    <section id="complexes">
      <title>Tableaux avec cellules recouvrantes</title>
      <para>Comme nous l'avons dit, des cellules peuvent en recouvrir d'autres, que ce soit en largeur ou en hauteur. Pour qu'une cellule occupe <replaceable>n</replaceable> cellules vers la fin de la ligne, on utilise l'attribut <token>colspan="n"</token>. Pour qu'une cellule occupe <replaceable>n</replaceable> cellules vers la fin de la colonne, on utilise l'attribut <token>rowspan="n"</token>. Voici un exemple où j'ai volontairement laissé en blanc les cellules supprimées&#160;:</para>
      <programlisting>
&lt;table&gt;
  &lt;tr&gt;
    &lt;td rowspan="2"&gt;ligne 1 et 2, colonne 1&lt;/td&gt;
    &lt;td&gt;ligne 1, colonne 2&lt;/td&gt;
    &lt;td&gt;ligne 1, colonne 3&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;ligne 2, colonne 2&lt;/td&gt;
    &lt;td&gt;ligne 2, colonne 3&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;ligne 3, colonne 1&lt;/td&gt;
    &lt;td colspan="2"&gt;ligne 3, colonne 2 et 3&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
      </programlisting>
    </section>
    <section id="titre_tableau">
      <title>Titre de tableau</title>
      <para>Vous pouvez donner un titre à votre tableau grâce à l'élément <token>caption</token>. Cet élément va placer le titre, généralement au dessus du tableau. Voici un exemple d'usage de l'élément <token>caption</token>&#160;:</para>
      <programlisting>
&lt;table&gt;
  &lt;caption&gt;Mon premier tableau&lt;/caption&gt;
  &lt;tr&gt;
    &lt;td&gt;ligne 1, colonne 1&lt;/td&gt;
    &lt;td&gt;ligne 1, colonne 2&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;ligne 2, colonne 1&lt;/td&gt;
    &lt;td&gt;ligne 2, colonne 2&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
      </programlisting>
    </section>
  </section>
  <section id="espaces">
    <title>Sauts de ligne et espace insécables.</title>
    <para>Il est commode pour diverses raisons, de sauter une ligne dans un texte, sans pour autant marquer un saut de paragraphe (en poésie par exemple). Ceci est permis par l'élément <token>br</token>. Cet élément est unique et se termine donc par un <token>/</token>. Voici un exemple&#160;:</para>
    <programlisting>
&lt;p&gt;
  vidi lecta diu et multo spectata labore&lt;br /&gt;
  degenerare tamen, ni vis humana quotannis&lt;br /&gt;
  maxima quaeque manu legeret. sic omnia fatis&lt;br /&gt;
  in peius ruere ac retro sublapsa referri,&lt;br /&gt;
  non aliter quam qui adverso vix flumine lembum&lt;br /&gt;
  remigiis subigit, si bracchia forte remisit,&lt;br /&gt;
  atque illum in praeceps prono rapit alveus amni.
&lt;/p&gt;
&lt;p&gt;Texte de Virgile.&lt;/p&gt;
    </programlisting>
    <para>La langue française impose d'utiliser des espaces avant certaines marques de ponctuation telles que le point d'interrogation, le point d'exclamation, le point virgule ou encore les deux points. Ceci est facile à faire, il suffit de mettre un espace. Le problème est que votre marque de ponctuation, avec un espace normal, peut passer à la ligne, ce qui sera des plus disgracieux. Heureusement, il existe un caractère particulier dit <emphasis>espace insécable</emphasis>. Un mot suivi d'un espace insécable et d'une marque de ponctuation ne sera jamais
coupé. L'espace insécable est un caractère particulier codé <token>&amp;nbsp;</token>. Voici un exemple&#160;:</para>
    <programlisting>
&lt;p&gt;
  Ceci est un paragraphe, veuillez le lire
  attentivement&amp;nbsp;:
&lt;/p&gt;
&lt;p&gt;
  Mon paragraphe HTML vous plaît-il&amp;nbsp;?
&lt;/p&gt;
    </programlisting>
    <note>
      <para>Lorsque l'encodage du document est <acronym>ISO</acronym>-8859-1, on peut écrire l'espace insécable avec le code suivant&#160;: <token>&amp;#160;</token>.</para>
    </note>
  </section>
  <section id="conclusion">
    <title>Conclusion</title>
    <section id="fin">
      <title>Le mot de la fin</title>
      <para>Ce texte a été fortement inspiré de <ulink url="http://www.w3.org/MarkUp/Guide/">Getting started with HTML</ulink>, je ne le cache pas. Il aurait dû être une traduction mais, à mi-parcours j'ai réalisé qu'il était devenu trop daté et aurait eu pour effet de donner de mauvaises habitudes au débutant <acronym>HTML</acronym>.</para>
    </section>
    <section id="sources">
      <title>(re)Sources</title>
      <para>Internet est le lieu rêvé pour vous documenter sur un sujet aussi connu que <acronym>HTML</acronym> ou <acronym>XHTML</acronym>.</para>
      <section id="apprendre">
        <title>Sites pour apprendre</title>
        <para>Voici quelques pages ou sites, pour en savoir plus long sur le sujet, et en français&#160;:</para>
        <itemizedlist>
          <listitem>
            <para>
              <ulink url="http://www.mammouthland.net/cours/css/index.php">tutoriel <acronym>CSS</acronym></ulink> spécialement orienté pour débutants, très bien fait. C'est ce que vous devez lire pour apprendre à mettre en forme vos documents&#160;;</para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://www.allhtml.com/">ALL HTML</ulink>. Comme sur beaucoup de sites du même style, la qualité est inégale. On y trouve de bons forums.</para>
          </listitem>
        </itemizedlist>
      </section>
      <section id="specifications">
        <title>Les spécifications</title>
        <para>Les spécifications représentent de très bonnes documentations car on y trouve tout concernant le langage. Leur seul défaut est leur sécheresse, on aime ou on n'aime pas, mais on y vient un jour ou l'autre&#8230;</para>
        <itemizedlist>
          <listitem>
            <para><ulink url="http://www.w3.org/TR/html4/"><acronym>HTML</acronym> 4.01</ulink> sur le site du <acronym>W3C</acronym>&#160;;</para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://www.la-grange.net/w3c/html4.01/"><acronym>HTML</acronym> 4.01</ulink> traduite en français par <personname><firstname>Karl</firstname><surname>Dubost</surname></personname>&#160;;
            </para>
          </listitem>
          <listitem>
            <para><ulink url="http://www.w3.org/TR/REC-CSS1"><acronym>CSS</acronym> 1</ulink> sur le site du <acronym>W3C</acronym>&#160;;</para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://www.yoyodesign.org/doc/w3c/css1/index.html"><acronym>CSS</acronym> 1</ulink> en français par <personname><firstname>Jean-Jacques</firstname><surname>Solari</surname></personname>.</para>
          </listitem>
        </itemizedlist>
      </section>
    </section>
  </section>
</article>
