Listes en HTML : Ordonnées, Non Ordonnées et de Définition Expliquées
Maîtrisez les listes HTML avec ce guide complet couvrant les éléments ul, ol et dl, les techniques d'imbrication, le stylisme avec CSS et les meilleures pratiques d'accessibilité.
Maîtrisez les listes HTML avec ce guide complet couvrant les éléments ul, ol et dl, les techniques d'imbrication, le stylisme avec CSS et les meilleures pratiques d'accessibilité.
HTML fournit trois types principaux de listes, chacun servant des objectifs différents :
<ul>
) - Pour les éléments sans ordre spécifique<ol>
) - Pour les éléments séquentiels ou classés<dl>
) - Pour les paires terme-définitionExplorons chaque type en détail.
<ul>
pour les Listes à PucesLes listes non ordonnées sont parfaites pour regrouper des éléments liés où l'ordre n'a pas d'importance. Elles sont couramment utilisées pour les menus de navigation, les listes de fonctionnalités et l'organisation générale du contenu.
<ul>
<li>Premier élément</li>
<li>Deuxième élément</li>
<li>Troisième élément</li>
</ul>
Menu de Navigation :
<nav>
<ul>
<li><a href="/">Accueil</a></li>
<li><a href="/a-propos">À Propos</a></li>
<li><a href="/services">Services</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</nav>
Liste de Fonctionnalités :
<ul>
<li>Design responsive</li>
<li>Temps de chargement rapides</li>
<li>Optimisé pour le SEO</li>
<li>Compatible mobile</li>
<li>Compatible multi-navigateurs</li>
</ul>
Liste de Courses :
<ul>
<li>Lait</li>
<li>Pain</li>
<li>Œufs</li>
<li>Fromage</li>
<li>Pommes</li>
</ul>
Bien que le CSS moderne gère la plupart du stylisme, vous pouvez encore utiliser l'attribut type
:
<ul type="disc"> <!-- Par défaut : cercles pleins -->
<ul type="circle"> <!-- Cercles vides -->
<ul type="square"> <!-- Carrés pleins -->
Note : L'attribut type
est déprécié en HTML5. Utilisez CSS à la place pour le stylisme.
<ol>
pour les Listes NumérotéesLes listes ordonnées sont idéales quand la séquence ou le classement des éléments compte. Elles sont parfaites pour les instructions, les classements et les processus étape par étape.
<ol>
<li>Première étape</li>
<li>Deuxième étape</li>
<li>Troisième étape</li>
</ol>
Attribut Start :
<ol start="5">
<li>Cinquième élément</li>
<li>Sixième élément</li>
<li>Septième élément</li>
</ol>
Attribut Type :
<ol type="1"> <!-- 1, 2, 3 (par défaut) -->
<ol type="A"> <!-- A, B, C -->
<ol type="a"> <!-- a, b, c -->
<ol type="I"> <!-- I, II, III -->
<ol type="i"> <!-- i, ii, iii -->
Attribut Reversed :
<ol reversed>
<li>Troisième place</li>
<li>Deuxième place</li>
<li>Première place</li>
</ol>
<!-- Affiche : 3. Troisième place, 2. Deuxième place, 1. Première place -->
Instructions de Recette :
<h3>Comment Faire des Cookies aux Pépites de Chocolat</h3>
<ol>
<li>Préchauffer le four à 190°C</li>
<li>Mélanger la farine, le bicarbonate et le sel dans un bol</li>
<li>Battre le beurre et les sucres dans un bol séparé</li>
<li>Ajouter les œufs et la vanille au mélange de beurre</li>
<li>Incorporer graduellement le mélange de farine</li>
<li>Ajouter les pépites de chocolat</li>
<li>Déposer des cuillères à soupe sur des plaques non graissées</li>
<li>Cuire 9-11 minutes jusqu'à ce qu'ils soient dorés</li>
</ol>
Top 5 des Langages de Programmation :
<h3>Langages de Programmation les Plus Populaires 2024</h3>
<ol>
<li>JavaScript</li>
<li>Python</li>
<li>Java</li>
<li>TypeScript</li>
<li>C#</li>
</ol>
Étapes d'Installation :
<h3>Guide d'Installation du Logiciel</h3>
<ol>
<li>Télécharger l'installateur depuis notre site web</li>
<li>Exécuter l'installateur en tant qu'administrateur</li>
<li>Accepter l'accord de licence</li>
<li>Choisir le répertoire d'installation</li>
<li>Sélectionner les composants à installer</li>
<li>Cliquer sur "Installer" et attendre la fin</li>
<li>Redémarrer votre ordinateur quand demandé</li>
</ol>
Vous pouvez imbriquer des listes à l'intérieur d'autres listes pour créer des structures hiérarchiques. C'est utile pour créer des sous-menus, des plans détaillés et des structures organisationnelles complexes.
<ul>
<li>Développement Web
<ul>
<li>Frontend
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
</li>
<li>Backend
<ul>
<li>Node.js</li>
<li>Python</li>
<li>PHP</li>
</ul>
</li>
</ul>
</li>
<li>Développement Mobile
<ul>
<li>iOS</li>
<li>Android</li>
<li>React Native</li>
</ul>
</li>
</ul>
<ol>
<li>Phase de Planification
<ol type="a">
<li>Définir les exigences</li>
<li>Créer les wireframes</li>
<li>Concevoir les maquettes</li>
</ol>
</li>
<li>Phase de Développement
<ol type="a">
<li>Configurer l'environnement de développement</li>
<li>Construire les fonctionnalités principales</li>
<li>Implémenter l'interface utilisateur</li>
</ol>
</li>
<li>Phase de Test
<ol type="a">
<li>Tests unitaires</li>
<li>Tests d'intégration</li>
<li>Tests d'acceptation utilisateur</li>
</ol>
</li>
</ol>
<ol>
<li>Options de Petit-Déjeuner
<ul>
<li>Céréales
<ul>
<li>Cornflakes</li>
<li>Flocons d'avoine</li>
<li>Granola</li>
</ul>
</li>
<li>Options Chaudes
<ul>
<li>Crêpes</li>
<li>Gaufres</li>
<li>Pain Perdu</li>
</ul>
</li>
</ul>
</li>
<li>Options de Déjeuner
<ul>
<li>Sandwichs</li>
<li>Salades</li>
<li>Soupes</li>
</ul>
</li>
</ol>
<dl>
, <dt>
et <dd>
pour les DéfinitionsLes listes de définition sont parfaites pour les glossaires, FAQ, spécifications de produits et tout contenu qui associe des termes à leurs descriptions.
<dl>
<dt>Terme 1</dt>
<dd>Définition ou description du terme 1</dd>
<dt>Terme 2</dt>
<dd>Définition ou description du terme 2</dd>
</dl>
Glossaire :
<dl>
<dt>HTML</dt>
<dd>HyperText Markup Language - le langage de balisage standard pour créer des pages web</dd>
<dt>CSS</dt>
<dd>Cascading Style Sheets - utilisé pour décrire la présentation d'un document écrit en HTML</dd>
<dt>JavaScript</dt>
<dd>Un langage de programmation qui permet des pages web interactives et du contenu dynamique</dd>
<dt>Design Responsive</dt>
<dd>Une approche du design web qui fait que les pages web s'affichent bien sur divers appareils et tailles d'écran</dd>
</dl>
Spécifications de Produit :
<dl>
<dt>Taille d'Écran</dt>
<dd>15,6 pouces</dd>
<dt>Résolution</dt>
<dd>1920 x 1080 pixels</dd>
<dt>Processeur</dt>
<dd>Intel Core i7-11800H</dd>
<dt>Mémoire</dt>
<dd>16GB DDR4 RAM</dd>
<dt>Stockage</dt>
<dd>512GB SSD</dd>
<dt>Poids</dt>
<dd>1,9 kg</dd>
</dl>
Section FAQ :
<dl>
<dt>Quelle est votre politique de retour ?</dt>
<dd>Nous offrons une politique de retour de 30 jours pour tous les articles non utilisés dans leur emballage d'origine. Les frais de retour sont à la charge du client sauf si l'article était défectueux.</dd>
<dt>Combien de temps prend la livraison ?</dt>
<dd>La livraison standard prend 3-5 jours ouvrables. La livraison express prend 1-2 jours ouvrables. La livraison internationale varie selon la localisation.</dd>
<dt>Offrez-vous un support client ?</dt>
<dd>Oui, nous fournissons un support client 24/7 par email, téléphone et chat en direct. Notre équipe de support est toujours prête à aider avec toute question ou problème.</dd>
</dl>
Un terme peut avoir plusieurs descriptions :
<dl>
<dt>JavaScript</dt>
<dd>Un langage de programmation de haut niveau</dd>
<dd>Couramment utilisé pour le développement web</dd>
<dd>Supporte les paradigmes de programmation orientée objet et fonctionnelle</dd>
<dt>Python</dt>
<dd>Un langage de programmation interprété de haut niveau</dd>
<dd>Connu pour sa syntaxe simple et lisible</dd>
<dd>Populaire pour la science des données, le développement web et l'automatisation</dd>
</dl>
Plusieurs termes peuvent partager la même description :
<dl>
<dt>Frontend</dt>
<dt>Côté Client</dt>
<dt>Interface Utilisateur</dt>
<dd>La partie d'un site web ou d'une application avec laquelle les utilisateurs interagissent directement</dd>
<dt>Backend</dt>
<dt>Côté Serveur</dt>
<dd>La logique côté serveur et l'infrastructure qui alimentent un site web ou une application</dd>
</dl>
Bien que HTML fournisse la structure, CSS donne vie aux listes avec un stylisme personnalisé.
/* Supprimer le stylisme par défaut */
ul, ol {
list-style: none;
padding: 0;
margin: 0;
}
/* Puces personnalisées */
ul li {
position: relative;
padding-left: 20px;
}
ul li::before {
content: "•";
color: #007bff;
font-weight: bold;
position: absolute;
left: 0;
}
.nav-list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
gap: 20px;
}
.nav-list li {
display: inline-block;
}
.nav-list a {
text-decoration: none;
color: #333;
padding: 10px 15px;
border-radius: 5px;
transition: background-color 0.3s;
}
.nav-list a:hover {
background-color: #f0f0f0;
}
<ul class="nav-list">
<li><a href="/">Accueil</a></li>
<li><a href="/a-propos">À Propos</a></li>
<li><a href="/services">Services</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
.custom-ordered {
counter-reset: item;
padding: 0;
list-style: none;
}
.custom-ordered li {
counter-increment: item;
margin-bottom: 10px;
padding-left: 40px;
position: relative;
}
.custom-ordered li::before {
content: counter(item);
background: #007bff;
color: white;
width: 25px;
height: 25px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
left: 0;
top: 0;
font-weight: bold;
font-size: 14px;
}
.styled-dl {
display: grid;
grid-template-columns: 1fr 2fr;
gap: 10px 20px;
max-width: 600px;
}
.styled-dl dt {
font-weight: bold;
color: #333;
padding: 10px 0;
border-bottom: 1px solid #eee;
}
.styled-dl dd {
padding: 10px 0;
margin: 0;
border-bottom: 1px solid #eee;
color: #666;
}
.nested-list {
list-style: none;
padding: 0;
}
.nested-list li {
margin: 5px 0;
padding-left: 20px;
position: relative;
}
.nested-list > li::before {
content: "▶";
position: absolute;
left: 0;
color: #007bff;
}
.nested-list ul {
margin-top: 10px;
padding-left: 20px;
}
.nested-list ul li::before {
content: "▸";
color: #666;
}
Rendre les listes accessibles assure que tous les utilisateurs peuvent naviguer et comprendre votre contenu efficacement.
<!-- Bon : Navigation sémantique -->
<nav aria-label="Navigation principale">
<ul>
<li><a href="/" aria-current="page">Accueil</a></li>
<li><a href="/a-propos">À Propos</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</nav>
<!-- Bon : Objectif de liste clair -->
<h3>Documents Requis</h3>
<ul>
<li>Permis de conduire ou pièce d'identité</li>
<li>Preuve de revenus</li>
<li>Relevés bancaires</li>
</ul>
<ul aria-label="Liens de réseaux sociaux">
<li><a href="#" aria-label="Suivez-nous sur Facebook">Facebook</a></li>
<li><a href="#" aria-label="Suivez-nous sur Twitter">Twitter</a></li>
<li><a href="#" aria-label="Suivez-nous sur Instagram">Instagram</a></li>
</ul>
/* Assurer que les indicateurs de focus sont visibles */
.nav-list a:focus {
outline: 2px solid #007bff;
outline-offset: 2px;
}
/* Lien de saut au contenu */
.skip-link {
position: absolute;
top: -40px;
left: 6px;
background: #000;
color: white;
padding: 8px;
text-decoration: none;
z-index: 1000;
}
.skip-link:focus {
top: 6px;
}
<!-- Incorrect : Utiliser les listes juste pour le stylisme -->
<ul>
<li><div>Pas vraiment du contenu lié</div></li>
<li><div>Juste utilisé pour le stylisme CSS</div></li>
</ul>
<!-- Correct : Utiliser les éléments appropriés -->
<div class="card-grid">
<div class="card">Contenu 1</div>
<div class="card">Contenu 2</div>
</div>
<!-- Incorrect : Contenu direct dans la liste -->
<ul>
Du texte directement dans la liste
<li>Premier élément</li>
<li>Deuxième élément</li>
</ul>
<!-- Correct : Tout le contenu dans des éléments de liste -->
<ul>
<li>Du texte dans un élément de liste</li>
<li>Premier élément</li>
<li>Deuxième élément</li>
</ul>
<!-- Incorrect : Élément de liste en dehors du parent -->
<ul>
<li>Élément 1</li>
<li>Élément 2</li>
</ul>
<li>Élément orphelin</li>
<!-- Correct : Imbrication appropriée -->
<ul>
<li>Élément 1</li>
<li>Élément 2</li>
<li>Élément 3</li>
</ul>
<!-- Incorrect : Liste non ordonnée pour des étapes -->
<ul>
<li>D'abord, faire ceci</li>
<li>Ensuite, faire cela</li>
<li>Enfin, faire ceci</li>
</ul>
<!-- Correct : Liste ordonnée pour des étapes séquentielles -->
<ol>
<li>D'abord, faire ceci</li>
<li>Ensuite, faire cela</li>
<li>Enfin, faire ceci</li>
</ol>
.custom-counter {
counter-reset: section;
list-style: none;
padding: 0;
}
.custom-counter li {
counter-increment: section;
margin-bottom: 10px;
}
.custom-counter li::before {
content: "Étape " counter(section) " : ";
font-weight: bold;
color: #007bff;
}
<ul class="interactive-list">
<li>
<input type="checkbox" id="task1">
<label for="task1">Terminer la proposition de projet</label>
</li>
<li>
<input type="checkbox" id="task2">
<label for="task2">Réviser les commentaires du client</label>
</li>
<li>
<input type="checkbox" id="task3">
<label for="task3">Mettre à jour le calendrier du projet</label>
</li>
</ul>
.interactive-list {
list-style: none;
padding: 0;
}
.interactive-list li {
margin: 10px 0;
padding: 10px;
background: #f9f9f9;
border-radius: 5px;
}
.interactive-list input[type="checkbox"] {
margin-right: 10px;
}
.interactive-list input[type="checkbox"]:checked + label {
text-decoration: line-through;
color: #666;
}
Les listes HTML sont des outils puissants pour organiser et présenter l'information efficacement. En comprenant quand et comment utiliser les listes non ordonnées, ordonnées et de définition, vous pouvez créer du contenu web bien structuré, accessible et convivial.
Rappelez-vous que la clé d'une utilisation efficace des listes est de choisir le bon type pour le sens et l'objectif de votre contenu. Combiné avec un stylisme CSS réfléchi et des considérations d'accessibilité, les listes deviennent des éléments de construction essentiels pour créer des expériences web engageantes et professionnelles.
Commencez à implémenter ces techniques de listes dans vos projets, et vous remarquerez une amélioration de l'organisation du contenu, une meilleure expérience utilisateur et une accessibilité renforcée sur vos sites web.
Continuez votre lecture avec ces articles connexes
Maîtrisez les images HTML avec ce guide complet couvrant le tag img, le texte alternatif, les formats de fichiers, les images responsives, srcset et l'optimisation des performances web.
Apprenez à créer des tableaux HTML des bases aux techniques avancées. Maîtrisez les éléments table, tr, td, th, l'accessibilité, le design responsif et quand utiliser les tableaux appropriément.
Apprenez à créer des formulaires HTML interactifs avec les types d'input, étiquettes, boutons et validation de base. Maîtrisez l'accessibilité des formulaires et les meilleures pratiques.
Découvrez la puissance des éléments HTML sémantiques comme header, footer, article et section. Apprenez comment le balisage sémantique améliore le SEO, l'accessibilité et la maintenabilité du code.