<?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="puces_images">
  <articleinfo>
    <title>Des puces en images</title>
    <pubdate>2003-03-21</pubdate>
    <date>2004-05-01</date>
    <author>
      <firstname>Pascale</firstname>
      <surname>Lambert</surname>
      <email>pascale.lambert@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>Afin de rendre plus attrayante une liste à puces, l'utilisation des <acronym>CSS</acronym> permet de remplacer les traditionnelles puces par des images, de façon extrêmement simple.</para>
    </abstract>
    <subjectset>
      <subject role="profil">
        <subjectterm>debutant</subjectterm>
      </subject>
      <subject role="theme">
        <subjectterm>mise_en_page</subjectterm>
      </subject>
      <subject role="technologie">
        <subjectterm>css</subjectterm>
      </subject>
    </subjectset>
  </articleinfo>
  <section id="classique">
    <title>La solution <token>list-style-image</token></title>
  <para>Cette technique fonctionne avec les navigateurs modernes : <acronym>MSIE</acronym> 5 et +, Netscape 6 et +, Mozilla 1, Opéra 5 et +, etc. (Les navigateurs plus anciens affichant une liste à puce classique à la place de la liste personnalisée). Elle utilise les attributs <acronym>CSS</acronym> <token>color</token>, <token>display</token>, <token>font-family</token>, <token>font-size</token> et <token>list-style-image</token>.</para>
  <section id="css1">
    <title>Source <acronym>CSS</acronym></title>
    <para>À placer dans une feuille de style externe ou dans l'en-tête de la page <acronym>(X)HTML</acronym> entre des balises <token>&lt;style type="text/css"&gt;&lt;/style&gt;</token>&#160;:</para>
    <programlisting>
li {
  font-family: Verdana, Arial, Helvetica, Geneva, sans-serif;
  font-size: <replaceable>100%</replaceable>;
  color: <replaceable>black</replaceable>;
  display: list-item;
  list-style-image: url(<replaceable>puce.png</replaceable>);
}
    </programlisting>
  </section>
  <section id="xhtml1">
    <title>Source <acronym>(X)HTML</acronym></title>
    <programlisting><![CDATA[<ul>
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
</ul>]]></programlisting>
  </section>
  <section id="resultat1">
    <title>Résultat</title>
    <mediaobject>
      <imageobject>
        <imagedata fileref="annexes/ex1.gif"/>
      </imageobject>
      <textobject>
        <phrase>3 items de listes précédés d'une puce couleur prune</phrase>
      </textobject>
    </mediaobject>
  </section>
</section>
<section id="Latchman">
    <title>La solution <token>background-image</token></title>
    <para>L'inconvénient de la méthode précédemment décrite est que les images choisies comme puces ne sont pas forcement alignées avec le texte.</para>
    <para>Pour résoudre ce problème, <ulink url="/openwebgroup/bios/samuel_latchman/">Samuel Latchman</ulink> prescrit de mettre ces images en fond (<token>background-image:horizontal vertical</token>) et d'ajuster la position à l'aide de l'attribut <token>background-position</token> et d'un <token>padding-left</token> pour que l'image ne se superpose pas au texte.</para>
    <para>De plus, il faut bien sûr désactiver les puces par défaut à l'aide de <token>list-style-type:none;</token>.</para>

  <section id="css2">
    <title>Source <acronym>CSS</acronym></title>
    <para>À placer dans une feuille de style externe ou dans l'en-tête de la page <acronym>(X)HTML</acronym> entre des balises <token>&lt;style type="text/css"&gt;&lt;/style&gt;</token>&#160;:</para>
    <programlisting>
li {
font-family: Verdana, Arial, Helvetica, Geneva, sans-serif;
font-size: <replaceable>100%</replaceable>;
color: <replaceable>black</replaceable>;
list-style-type: none;
background-image: url(<replaceable>puce.png</replaceable>);
background-repeat: no-repeat;
background-position: <replaceable>0% 65%</replaceable>;
padding-left: <replaceable>15px</replaceable>;
}
    </programlisting>
    <para>Les positions <token>background-position:0% 65%;</token> et <token>padding-left:15px;</token> sont évidemment à modifier selon l'image utilisée.</para>
  </section>
  <section id="resultat2">
    <title>Résultat</title>
    <para><ulink url="annexes/">Testez le résultat dans votre navigateur</ulink>.</para>
    <mediaobject>
      <imageobject>
        <imagedata fileref="annexes/puces2.png"/>
      </imageobject>
      <textobject>
        <phrase>3 items de liste précédés d'une puce déclarée en image de fond</phrase>
      </textobject>
    </mediaobject>
  </section>
</section>
</article>
