Dans l'exercice précédent, nous avons réussi à créer un menu horizontal simple en HTML et en CSS. Je vous propose maintenant de transformer ce menu pour créer un menu déroulant, c'est-à-dire un menu comportant plusieurs niveaux. Créer un menu déroulant en HTML et en CSS va s'avérer un peu plus complexe que de créer un menu simple à cause notamment des questions de positionnement qu'il va falloir régler. Dans cet exercice, nous allons rester simple et nous contenter seulement d'un deuxième niveau de menu. Notez que de manière générale il est déconseillé d'aller plus loin que cela pour des raisons d'ergonomie de votre site. L'idée ici va donc être de créer des sous-menus. Chaque sous-menu va être lié à un onglet du menu principal et ne va devoir apparaitre que lorsqu'un utilisateur passe sa souris sur l'onglet en question. Menu déroulant horizontal, une technique simple ? - Alsacreations. Squelette HTML du menu déroulant
Nous allons commencer par récupérer le code HTML de notre menu simple vu à la leçon précédente et lui rajouter des sous-menus. Pour représenter nos sous-menus, nous allons simplement imbriquer une nouvelle liste dans les différents éléments de notre liste principale.
- Menu déroulant horizontal css example
- Menu déroulant css horizontal
- Menu déroulant horizontal css html
- La taille de macron 2
Choix esthétiques pour la version mobile
Lorsqu'on se lance dans un projet de développement, il est important de commencer par définir les « spéc » (spécifications techniques) du projet en question avant de commencer à coder. En effet, le fait de savoir précisément ce qu'on souhaite obtenir et de définir les différentes choses qu'on va pouvoir utiliser pour l'obtenir évite de faire des allers-retours dans son code, d'en supprimer des parties, d'en modifier d'autres et etc. Menu déroulant horizontal css example. et fait au final gagner beaucoup de temps. Pour notre menu mobile, nous avons deux spécifications majeures: nous voulons que les éléments de menu s'affichent en colonne et voulons également que le menu soit replié par défaut pour éviter qu'il ne consomme trop de place sur l'écran. Squelette HTML du menu responsive
Ici, nous allons récupérer le squelette HTML de notre menu déroulant utilisant le flexbox. Nous allons toutefois ajouter deux choses à ce code HTML: une balise meta name="viewport" que nous avons découvert dans cette partie ainsi qu'un label avec un élément input type="checkbox" associé qui vont nous servir de « hack » pour nous permettre de déplier et de replier le menu.
top: 36px;: Je positionne le menu à 36px du haut. Pourquoi 36? Tout simplement parce que cela correspond au 30px de la hauteur des lignes auxquels je rajoute les paddings haut et bas de 3px. left: 0px;: Cette ligne est inutile ici, mais vous pouvez l'utiliser pour décaler les sous-menus. z-index: 100;: La dernière chose à prévoir et la superposition des sous-menus. J'ajoute donc la propriété z-index pour m'assurer que les sous-menus soient bien au dessus du reste de ma page.. dropdownmenu li:hover ul {
position: absolute;
top: 36px;
left: 0px;
z-index: 100;} Les liens des sous-menus s'affichent actuellement en inline-block, on règle donc le problème…. dropdownmenu ul a {
display: block;} Il ne reste plus qu'à personnaliser les couleurs pour le menu.. Menu déroulant css horizontal. dropdownmenu li {
background-color: #666; / *Couleur d'arriere-plan du menu* /}. dropdownmenu li a {
color: #ccc; /* Couleur du texte du menu * /}. dropdownmenu li:hover {
background-color: #000; /* Couleur d'arriere-plan du menu au survol */}.
Dans mon cas, je vais faire simple pour ce premier essai et faire
un seul sous niveau. On aura donc le premier niveau visible, et
un sous-niveau déroulant. Je vais commencer par le menu principal avec une liste non-ordonnée
qui commence par un élément