<!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" xml:lang="fr" lang="fr">
  <head>
    <title>Openweb.eu.org - Des puces en images</title>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
    <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
    <meta name="DC.Language" scheme="RFC3066" content="fr" />
    <meta name="DC.Identifier" content="puces_images" />
    <meta name="DC.Creator" content="Pascale Lambert" />
    <meta name="DC.Date.created" scheme="W3CDTF" content="2003-03-21" />
    <meta name="DC.Date.modified" scheme="W3CDTF" content="2004-05-01" />
    <meta name="DC.Rights" content="Cet article est sous licence Creative Commons Attribution-ShareAlike." />
    <meta name="DC.Subject" content="debutant, mise_en_page, css" />
  </head>
  <body>
    <h1>Des puces en images</h1>
    <ul>
      <li>
        <strong>Profil :</strong> <a href="/debutant/">Débutant</a>
      </li>
      <li>
        <strong>Thème :</strong> <a href="/mise_en_page/">Mise en page</a>
      </li>
      <li>
        <strong>Technologie :</strong> <a href="/css/">CSS</a>
      </li>
      <li>
        <strong>Auteur :</strong> <a href="mailto:pascale.lambert%40openweb.eu.org">Pascale Lambert</a>
      </li>
      <li>
        <strong>Mise à jour :</strong> 01/05/2004</li>
    </ul>
    <h2>En bref</h2>
    <p>Afin de rendre plus attrayante une liste à puces, l'utilisation des <acronym title="Cascading Style Sheets" lang="en">CSS</acronym> permet de remplacer les traditionnelles puces par des images, de façon extrêmement simple.</p>
    <hr />
    <h3>La solution <code>list-style-image</code>
    </h3>
    <p>Cette technique fonctionne avec les navigateurs modernes : <acronym title="MicroSoft Internet Explorer" lang="en">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>
      <code>color</code>, <code>display</code>, <code>font-family</code>, <code>font-size</code> et <code>list-style-image</code>.</p>
    <h4>Source <acronym>CSS</acronym>
    </h4>
    <p>À placer dans une feuille de style externe ou dans l'en-tête de la page <acronym title="(eXtensible) HyperText Markup Language" lang="en">(X)HTML</acronym> entre des balises <code>&lt;style type="text/css"&gt;&lt;/style&gt;</code> :</p>
    <pre>
li {
  font-family: Verdana, Arial, Helvetica, Geneva, sans-serif;
  font-size: <strong>100%</strong>;
  color: <strong>black</strong>;
  display: list-item;
  list-style-image: url(<strong>puce.png</strong>);
}
    </pre>
    <h4>Source <acronym>(X)HTML</acronym>
    </h4>
    <pre>&lt;ul&gt;
  &lt;li&gt;item 1&lt;/li&gt;
  &lt;li&gt;item 2&lt;/li&gt;
  &lt;li&gt;item 3&lt;/li&gt;
&lt;/ul&gt;</pre>
    <h4>Résultat</h4>
    <div><img src="annexes/ex1.gif" alt="3 items de listes précédés d'une puce couleur prune" /></div>
    <h3>La solution <code>background-image</code>
    </h3>
    <p>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.</p>
    <p>Pour résoudre ce problème, <a href="/openwebgroup/bios/samuel_latchman/">Samuel Latchman</a> prescrit de mettre ces images en fond (<code>background-image:horizontal vertical</code>) et d'ajuster la position à l'aide de l'attribut <code>background-position</code> et d'un <code>padding-left</code> pour que l'image ne se superpose pas au texte.</p>
    <p>De plus, il faut bien sûr désactiver les puces par défaut à l'aide de <code>list-style-type:none;</code>.</p>
    <h4>Source <acronym>CSS</acronym>
    </h4>
    <p>À placer dans une feuille de style externe ou dans l'en-tête de la page <acronym>(X)HTML</acronym> entre des balises <code>&lt;style type="text/css"&gt;&lt;/style&gt;</code> :</p>
    <pre>
li {
font-family: Verdana, Arial, Helvetica, Geneva, sans-serif;
font-size: <strong>100%</strong>;
color: <strong>black</strong>;
list-style-type: none;
background-image: url(<strong>puce.png</strong>);
background-repeat: no-repeat;
background-position: <strong>0% 65%</strong>;
padding-left: <strong>15px</strong>;
}
    </pre>
    <p>Les positions <code>background-position:0% 65%;</code> et <code>padding-left:15px;</code> sont évidemment à modifier selon l'image utilisée.</p>
    <h4>Résultat</h4>
    <p>
      <a href="annexes/">Testez le résultat dans votre navigateur</a>.</p>
    <div><img src="annexes/puces2.png" alt="3 items de liste précédés d'une puce déclarée en image de fond" /></div>
  </body>
</html>
