Menu responsive avec Flexbox - 2
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 - 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'); }
});
Developer | Damien Flandrin |
Username | dam62500 |
Uploaded | June 12, 2022 |
Rating | 3 |
Size | 3,955 Kb |
Views | 137,632 |
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!
Name | Size |
Make a grid with Neat 2.0 | 5,522 Kb |
Card UI CSS | 2,897 Kb |
LAMP PURE CSS with Animation | 2,911 Kb |
A Pen by Damien Flandrin | 3,438 Kb |
Menu responsive avec Flexbox - 1 | 2,667 Kb |
Description list inline | 1,741 Kb |
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!
Name | Username | Size |
Use the Twitchtv JSON API | Roksanaop | 3,561 Kb |
SVG Modified with Query String | Jnowland | 1,663 Kb |
Materializecss input form | Jasonchan | 1,443 Kb |
Mario | Takaneichinose | 3,902 Kb |
Flat UI Button | Honchoman | 2,289 Kb |
Basic HTML5 Structure | YuvarajTana | 1,289 Kb |
Drill-down Map | Good886 | 8,484 Kb |
JQuery exercise | Brian-baum | 3,780 Kb |
Feedback Page | TessDiNapoli | 2,836 Kb |
Blog Concept - Single Post | Marionebl | 9,603 Kb |
Surf anonymously, prevent hackers from acquiring your IP address, send anonymous email, and encrypt your Internet connection. High speed, ultra secure, and easy to use. Instant setup. Hide Your IP Now!