Table des matières

Sommaire Web

WEB - Conception d'un menu déroulant avec des règles CSS

[Mise à jour le 1/4/2024]


1 Organisation du répertoire de travail

2. Création de la structure du menu

La structure du menu est créée dans le fichier menu.html à l'aide d'une liste non ordonnée .

*.html
<!DOCTYPE html>
<html>
 
<head>
    <meta charset="utf-8">
    <title>Menu déroulant</title>
    <link rel="stylesheet" type="text/css" href="styles/menu.css" />
    <!--<link href='https://fonts.googleapis.com/css?family=Lato' 
    rel='stylesheet' type='text/css' />-->
</head>
 
<body>
    <nav>
	<ul>
	  <li><a href="#">menu1</a></li>
	  <li><a href="#">menu2</a>
	      <ul>
		<li><a href="#">sous-menu 2.1</a></li>
	      </ul>
	  </li>
	  <li><a href="#">menu3</a>
	       <ul>
	           <li><a href="#">sous-menu 3.1</a></li>
		   <li><a href="#">sous-menu 3.2</a></li>
	       </ul>
	  </li>
	  <li><a href="#">menu4</a></li>
	</ul>
     </nav>
</body>
 
</html>


Remarque : le lien en commentaire montre comment utiliser une police de caractères Google.

3. Mise en forme du menu

CSS

Placer les règles CSS dans la page menu.css.
*.css
body {
    font-family: "Lato", sans-serif;
    font-size: 12px;
}

Créer la règle 1 comme ci-dessous :

*.css
/* Règle 1 */
nav ul {
    list-style: none;
}

Créer la règle 2 comme ci-dessous :

*.css
/* Règle 2 */
nav ul li a {
    text-decoration: none;
}

Compléter la règle 1 avec les déclarations ci-dessous :

*.css
/* Règle 1 */
nav ul {
    padding: 0;
    margin: 0;
}

Créer la règle 3 comme ci-dessous :

*.css
/* Règle 3 */
nav ul li ul {
    display: none;
}

Créer la règle 4 comme ci-dessous :

*.css
/* Règle 4  */
nav ul li {
    float: left;
}

Compléter la règle 4 avec les déclarations ci-dessous :

*.css
/* Règle 4 */
nav ul li {
    background-color: #64abfb;
    float: left;
    line-height: 35px;
}

Compléter la règle 2 avec la déclaration de style ci-dessous :

*.css
/* Règle 2 */
nav ul li a {
    padding: 5px;
}

Créer la règle 5 comme ci-dessous :

*.css
/* Règle 5 */
nav ul li:hover ul {
    display: list-item ;
    position: absolute;
}
Les déclarations display: list-item et position: absolute sur MDN Web Docs.

Créer la règle 6 comme ci-dessous :

*.css
/* Règle 6 */
nav ul li:hover ul li {
    float: none;
}
La propriété float sur MDN Web Docs

Compléter la règle 5 avec la déclaration de style ci-dessous :

*.css
/* Règle 5 */
nav ul li:hover ul {
    margin-left: -10px;
}

Compléter la règle 2 avec la déclaration de style ci-dessous :

*.css
nav ul li a {
    color: #FFF;
}

Créer la règle 7 comme ci-dessous :

*.css
/* Règle 7 */
li a:hover {
    border-bottom: 3px #FFF solid;
}

Créer la règle 8. Modifier les règles 1, 2 et 5 comme ci-dessous :

*.css
/* Règle 8 */
li {
    padding: 5px;
}
 
/* Règle 1 */
nav ul {
    background-color: #64abfb;  /* A ajouter */
    list-style: none;
    padding: 0;
    margin: 0;
}
 
/* Règle 2 */
nav ul li a {
    text-decoration: none;
    padding: 5px;
    color: #FFF;
    font-size: 15px; /* A ajouter */
}
 
/* Règle 5 */
nav ul li:hover ul {
    z-index: 9999; /* A ajouter */
    display: list-item ;
    position: absolute;
    margin-left: -10px;
}
La propriété z-index sur MDN Web Docs.