Menu responsive avec Flexbox - 2

Size
3,955 Kb
Views
137,632

How do I make an menu responsive avec flexbox - 2?

What is a menu responsive avec flexbox - 2? How do you make a menu responsive avec flexbox - 2? This script and codes were developed by Damien Flandrin on 12 June 2022, Sunday.

Menu responsive avec Flexbox - 2 Previews

Menu responsive avec Flexbox - 2 - Script Codes HTML Codes

<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>Menu responsive avec Flexbox - 2</title> <link rel="stylesheet" href="css/style.css">
</head>
<body> <nav class="nav" role="navigation"> <ul class="menu"> <li><a href="#">Accueil</a></li> <li class="has-children"><a href="#">Catégories</a> <!-- sous menu--> <ul class="sous-menu"> <li><a href="#">Item 1</a></li> <li><a href="#">Item 2</a></li> <li class="has-children"><a href="#">Item 3</a> <!-- un sous menu dans un sous-menu--> <ul class="sous-menu"> <li><a href="#">Item 1</a></li> <li><a href="#">Item 2</a></li> <li><a href="#">Item 3</a></li> <li><a href="#">Item 4</a></li> </ul> <!-- /un sous menu dans un sous-menu--> </li> <li><a href="#">Item 4</a></li> </ul> <!-- /sous menu--> </li> <li><a href="#">À Propos de Moi</a></li> <li><a href="#">Contact</a></li> </ul>
</nav> <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script> <script src="js/index.js"></script>
</body>
</html>

Menu responsive avec Flexbox - 2 - Script Codes CSS Codes

@charset "UTF-8";
/* ----------------- Étape 1 - La base
------------------- */
.nav ul { margin: 0px; padding: 0px; background: tomato; list-style: none;
}
.nav a { padding: 1em; display: block; text-align: center; text-decoration: none;
}
/* -----------------
Étape 2 - Le menu
1 - On défini l'affichage en mode flexbox.
2 - Avec flex-direction, on souhaite que les enfants de notre élément courant soit aligné en ligne.
3 - justify-content nous permet d'alligner les enfant à gauche, au centre ou à droite de notre élément courant
4 - Une fois sur une résolution de type mobile, avec l'aide de flex-flow qui est un raccourcie de flex-direction est de flex-wrap, on affiche les enfants par colonnes et on autorise le retour à la ligne.
----------------- */
.nav .menu { display: flex; /*1*/ flex-direction: row; /*2*/ justify-content: center; /*3*/
}
@media (max-width: 450px) { .nav .menu { flex-flow: column wrap; /*4*/ }
}
/* -----------------
Étape 3 - Les sous-menu
1 - On positionne notre élément en relatif dans le but de pouvoir aligner le sous-menu en fonction de son parent.
2 - Si le curseur de la souris est sur un élément contenant un sous-menu, on affiche le sous-menu en mode flexbox.
3 - On définit le comportement par défaut de notre sous-menu, de base il doit être caché, il sera aligné en colonne, on lui ajoute une taille minimale de 100 px ( pas obligatoires mais disons que dans mon exemple, on aurait un sous-menu ridiculement petit ).
4 - On aligne à gauche le texte pour une question d'esthétique.
5 - on aligne le sous sous-menu à la même hauteur que son parent et à sa droite ( right: 0 px; ne fonctionnerait pas dans ce genre de cas).
----------------- */
.has-children { /*1*/ position: relative;
}
.has-children:hover > .sous-menu { /*2*/ display: flex !important;
}
.sous-menu { /*3*/ display: none !important; flex-flow: column wrap; min-width: 100px; position: absolute; background: dodgerblue;
}
@media (max-width: 450px) { .sous-menu { position: static; }
}
.sous-menu.is-active { /* Javascript */ display: flex !important;
}
.sous-menu a { /*4*/ text-align: left; color: white;
}
@media (max-width: 450px) { .sous-menu a { text-align: center; }
}
.sous-menu .sous-menu { /*5*/ top: 0px; left: 100%; background: #1e76d6;
}

Menu responsive avec Flexbox - 2 - Script Codes JS Codes

$('.sous-menu').click(function(){ if ($(window).width() < 450) { if($(this).hasClass('is-active')) $(this).removeClass('is-active'); else $(this).addClass('is-active'); }
});
Menu responsive avec Flexbox - 2 - Script Codes
Menu responsive avec Flexbox - 2 - Script Codes
Home Page Home
Developer Damien Flandrin
Username dam62500
Uploaded June 12, 2022
Rating 3
Size 3,955 Kb
Views 137,632
Do you need developer help for Menu responsive avec Flexbox - 2?

Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!

Damien Flandrin (dam62500) Script Codes
Create amazing web content with AI!

Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!