Atelier 29 Novembre 2010
LES LISTES

Préambule

Les trois types de listes

Les listes sont des outils très utiles pour la réalisation de mises en page claires, aérées et bien hierarchisées. Elles constituent en outre l'ossature des menus en particulier des menus déroulants. il existe trois types de listes :

  1. Les listes ordonnées (ordered list), <ol>, dont les items sont identifiés par des chiffres romains, des chiffres arabes ou des lettres.
  2. Les listes non-ordonnées (unordered list), <ul>, dont les items sont identifiés par des puces.
  3. Les listes de définition (definition list), <dl>, assez peu connues ni utilisées.

Les listes <ol> et <ul>, sont des éléments block, elles encadrent d'autres éléments block, <li>, pour list-item.

La liste de définition <dl> elle aussi de type block, encadre deux autres balises de type block :

  1. <dt> : Definition Term
  2. <dd> : Definition Description

La liste de définition permet de représenter de façon hierarchisée un texte dont les titres sont les éléments <dt> et les paragraphes, les éléments <dd>.

La structure des listes

Quel que soit leur type, les listes obéïssent à la structure ci-dessous :

LISTE ORDONNÉE

  • <ol>
    • <li></li>
    • <li></li>
    • <li></li>
    • <li></li>
  • </ol>

LISTE NON ORDONNÉE

  • <ul>
    • <li></li>
    • <li></li>
    • <li></li>
    • <li></li>
  • </ul>

LISTE DE DÉFINITION

  • <dl>
    • <dt></dt>
    • <dd></dd>
    • <dt></dt>
    • <dd></dd>
  • </dl>

L'imbrication des listes

LISTES IMBRIQUÉES

  • <ul>
    • <li>
      • <ul>
        • <li>
          • <ul>
            • <li></li>
            • <li></li>
          • </ul>
        • </li>
        • <li></li>
        • <li></li>
        • <li></li>
      • </ul>
    • </li>
  • </ul>


L'imbrication des listes doit respecter un principe simple, chaque bloc <ol> ou <ul> imbriqué doit s'inscrire entre les balises <li> et </li> de l'élément de liste dans lequel il est imbriqué.

En théorie, il n'existe pas de limite dans le nombre de listes qui peuvent être imbriquées. ce sont l'intérêt pratique et la complexité croissante du code qui en fait fixent ces limites.

Notez que les listes imbriquées sont la base de la réalisation des menus déroulants à plusieurs niveaux.

L'imbrication est également possible avec les listes de définition. Dans ce cas, l'élément <dl> doit s'inscrire entre les balises <dd> et </dd> de l'élément de liste dans lequel il est imbriqué.



Les propriétés des listes

Les propriétés courantes

En tant qu'éléments de type block, les éléments <ol> et <ul>, <li>, <dl>, <dt> et <dd>, peuvent se voir attribuer les propriétés communes à tous les éléments block : margin, border, padding, height, width, background, color...

Notons, que les navigateurs attribuent par défaut aux éléments <ol>, <ul> les margin-left qui assurent leur décalage vers la droite. Cependant ces valeurs par défaut varient selon les navigateurs. Il peut donc être préférable de définir les valeurs des marges pour assurer un aspect uniforme des pages quel que soit le navigateur.

Les éléments <dd> des listes de définition ont également une margin-left par défaut, mais ni puce ni indicateur numérique.

  • Pour les listes ordonnées
    • upper-roman : chiffres romains majuscules
    • lower-roman : chiffres romains minuscules
    • decimal : chiffres arabes
    • upper-alpha : alphabet majuscule
    • lower-alpha : alphabet minuscule
  • Pour les listes non ordonnées
    • disc : puce cercle noir
    • circle : puce cercle vide
    • square : puce carré noir
  • Pour les deux types de listes
    • list-style-image : url(...) : puce image
    • none : aucune puce, aucun caractère


Les propriétés spécifiques aux listes

Les list-items peuvent se voir attribuer une propriété spécifique permettant de les identifier : list-style-type : valeur, qui peut prendre dix valeurs :

  • inside : décale la puce vers l'intérieur
  • outside : décale la puce vers l'extérieur
  • inherit : la liste hérite des propriétés de son parent

Les puces des list-items peuvent être décalées de leur position initiale par la propriété list-style-position : valeur, qui peut prendre trois valeurs :

Dans les listes ordonnées la numérotation peut démarrer à la valeur déterminée par l'attribut start="valeur" . Quel que soit le type de numérateur utilisé, cette valeur doit être exprimée en chiffres décimaux.

Préparation du chantier

Préalablement à la réalisation de vos exercices, il vous faut placer dans la feuille de style externe, la longue liste de sélecteurs ci-dessous. Je vous suggère de les identifier dans la feuille par la ligne de commentaire /*style des Listes*/.

.RomainMaj{
list-style-type:upper-roman;
font-size:14px;
font-weight:bold;
text-transform:uppercase;
margin-left:10px;
width:330px;
margin:auto;
}

.RomainMin,.Decimal,.AlphaMaj, .AlphaMin, .Disque,.Cercle,.Carre,
.Aucun,.Icone{
font-size:12px;
font-weight:bold;
text-transform:none;
margin-left:10px;
}

.Carre{
list-style-type: square;
font-size:14px;
font-weight:bold;
text-transform:uppercase;
width:250px;
margin:auto;
}
ol, ul, dd{
margin-bottom:10px;
}

li, dt{
margin-bottom:5px;
}

.Decimal{
list-style-type: decimal;
}

.AlphaMaj{
list-style-type:upper-alpha;
}

.AlphaMin{
list-style-type:lower-alpha;
}

.Disque{
list-style-type:disc;

.Cercle{
list-style-type: circle;

.RomainMin{
list-style-type:lower-roman;
}
.Aucun{
list-style-type:none;
}

.Voile{
list-style-image:url(Images/Voile.jpg);
}

.Vapeur{
list-style-image:url(Images/Vapeur.png);
}

dl{
width:800px;
margin:auto;
}

dt{
font-size:14px;
font-weight:bold;
text-transform:uppercase;
margin-bottom:5px;
}

dd{
font-size:12px;
margin-bottom:10px;
}

Listes ordonnées imbriquées

Dans le code html, créons un élément <div class="Boites2> dans lequel nous placerons :

Vous trouverez dans le fichier texte RoisdeFrance.txt, le détail du contenu de ces listes.

Listes non ordonnées imbriquées

Dans le code html, sous le précédent créons un élément <div class="Boites2> dans lequel nous placerons :

Vous trouverez dans le fichier texte LaMarine.txt, le détail du contenu de ces listes.

Liste de définition

Dans le code html, sous le précédent créons un élément <div class="Boites2> dans lequel nous placerons :