Création de menus en CSS

Dans cette leçon, nous allons nous entraîner à créer des menus de sites. Prenons comme exemple la création du menu suivant :

Pour commencer, nous devons créer la partie HTML. Créons une div, en y plaçant les liens de notre menu :

html<div id="menu">
  <a href="#">link text 1</a>
  <a href="#">link text 2</a>
  <a href="#">link text 3</a>
  <a href="#">link text 4</a>
  <a href="#">link text 5</a>
</div>

Comme vous le voyez sur l'exemple, l'un des liens du menu est mis en évidence. Il symbolise le fait que nous nous trouvons sur la page du site correspondant à cet élément de menu. Il est courant de marquer ces pages à l'aide de la classe active :

html<div id="menu">
  <a href="#">link text 1</a>
  <a href="#" class="active">link text 2</a>
  <a href="#">link text 3</a>
  <a href="#">link text 4</a>
  <a href="#">link text 5</a>
</div>

Maintenant, alignons nos liens sur une ligne :

css#menu {
  display: flex;
}

Écrivons les styles de nos liens :

css#menu a {
  margin-right: 5px;
  padding: 10px;
  font: 15px Arial;
  text-decoration: none;
  color: #1437AD;
  border: 1px solid #1437AD;
  background-color: white;
}

Ajoutons une réaction des liens au survol :

css#menu a:hover {
  color: blue;
  border: 1px solid blue;
  background-color: #F5F6FA;
}

L'apparence du lien actif coïncide avec celle du lien au survol. Combinons ces styles ensemble :

css#menu a:hover, #menu a.active {
  color: blue;
  border: 1px solid blue;
  background-color: #F5F6FA;
}

Assemblons le code et obtenons le code pour notre menu :

html<div id="menu">
  <a href="#">link text 1</a>
  <a href="#" class="active">link text 2</a>
  <a href="#">link text 3</a>
  <a href="#">link text 4</a>
  <a href="#">link text 5</a>
</div>
css#menu {
  display: flex;
}
#menu a {
  margin-right: 5px;
  padding: 10px;
  font: 15px Arial;
  text-decoration: none;
  color: #1437AD;
  border: 1px solid #1437AD;
  background-color: white;
}
#menu a:hover, #menu a.active {
  color: blue;
  border: 1px solid blue;
  background-color: #F5F6FA;
}
Задание 1
Задание 2
Задание 3