Problème CSS adaptation de mon menu
Résolu
Tzmagnum
Messages postés
126
Date d'inscription
Statut
Membre
Dernière intervention
-
Tzmagnum Messages postés 126 Date d'inscription Statut Membre Dernière intervention -
Tzmagnum Messages postés 126 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit soucis avec le css de mon menu, je vous explique j'aimerais que la largeur de mon menu s'adapte automatiquement à mon text.
Pour éviter d'avoir une menu sur 2 lignes, mais bien sur une ligne.
Et les textes des sous menu se mette parfois sur 2 lignes aussi quand le texte est trop long.
Sauriez-vous me dire ce que je dois changer svp ?
Merci d'avance.
Mon code css :
J'ai un petit soucis avec le css de mon menu, je vous explique j'aimerais que la largeur de mon menu s'adapte automatiquement à mon text.
Pour éviter d'avoir une menu sur 2 lignes, mais bien sur une ligne.
Et les textes des sous menu se mette parfois sur 2 lignes aussi quand le texte est trop long.
Sauriez-vous me dire ce que je dois changer svp ?
Merci d'avance.
Mon code css :
ul#nav { color: #232223; display:block; float:left; font: 13px/23px Georgia,"Times New Roman",Times,serif; padding-bottom: 5px; } ul#nav,ul#nav ul { list-style:none; } ul#nav .subs { background-color: #FDF1B8; border:1px solid #F5F5DC; display:none; float:left; left:0; padding:7px; position:absolute; top:100%; } ul#nav li:hover>* { display:block; } ul#nav li:hover { position:relative; } ul#nav ul .subs { left:100%; position:absolute; top:0; } ul#nav ul { padding:0 3px 3px; } ul#nav li { display:inline; float:left; } ul#nav a { color: #FEFEFE; float: left; font-size: 13px; letter-spacing: 1px; line-height: 14px; min-width:60px; padding: 60px 20px; text-align: left; text-decoration: none; text-shadow: 1px 1px 0 #F5F5DC; text-transform: uppercase; } ul#nav > li:hover > a { border-top: 5px solid #F5F5DC; color: #1e1e1e; padding-top: 55px; } ul#nav li a.current, ul#nav li a.current:hover { background: url("../images/nav_current.png") no-repeat scroll center top transparent; border: medium none; color: #F5F5DC; padding-top: 60px; text-shadow: none; } ul#nav ul a { color:#000; font-size:10px; font-weight:bold; padding:5px; text-shadow:#F5F5DC 0 0 0; border-radius:0; -moz-border-radius:0; -webkit-border-radius:0; } ul#nav ul li:hover>a { letter-spacing:2px; }
Configuration: Windows / Chrome 92.0.4515.107
A voir également:
- Problème CSS adaptation de mon menu
- Menu déroulant excel - Guide
- Canon quick menu - Télécharger - Utilitaires
- Windows 11 menu contextuel classique - Guide
- Windows 11 menu démarrer classique - Guide
- Réinitialiser menu démarrer windows 10 - Guide
5 réponses
Biensûr,
<?php header('Content-type: text/html; charset=utf-8') ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta charset="utf-8" /> <title>Menu</title> <link rel="stylesheet" href="css/menu.css" type="text/css" media="screen"> </head> <body> <div class="container"> <div class="content"> <ul id="nav"> <li><a href="#" class="current">Accueil</a></li> <li><a href="#">Rétroplanning</a></li> <li><a href="#">Conditions</a></li> <li><a href="#">Templates</a> <ul class="subs"> <li><a href="#">Clients</a></li><br> <li><a href="#">MO</a></li><br> <li><a href="#">MO Suivi</a></li><br> <li><a href="#">OM/BM</a></li><br> <li><a href="#">Rétroplanning</a></li> </ul> </li> <li><a href="#">Escalations</a> <ul class="subs"> <li><a href="#">OM/BM</a></li><br> <li><a href="#">MO</a></li><br> </ul> </li> <li><a href="#">Formation</a> <ul class="subs"> <li><a href="#">E-Learning & Quiz</a></li><br> <li><a href="#">Instruction</a></li> <li><a href="#">Statistiques</a></li> </ul> </li> <li><a href="#">Travail individuel</a> <ul class="subs"> <li><a href="#">Kevin</a></li><br> <li><a href="#">Pierre</a></li><br> <li><a href="#">Romain</a></li><br> <li><a href="#">Jacques</a></li><br> <li><a href="#">Jean</a></li> </ul> </li> <li><a href="#">FAQ</a></li> <li><a href="mailto:?to=test@test.be &subject=Contact%20:%20Projet%20test">Nous contacter</a></li> <li><a href="#">Remerciements</a></li> </ul> </div> </div> <br /><br /> </body> </html>
Pour que les éléments du menu et des sous-menu soient sur une seule ligne, tu peux ajouter la règle css white-space: nowrap; sur le sélecteur css ul#nav a :
Au passage, peut-être mettre à jour le doctype de ton document html en utilisant html5 ?
https://www.w3schools.com/tags/tag_doctype.asp
ul#nav a { white-space: nowrap; /* [...] */
Au passage, peut-être mettre à jour le doctype de ton document html en utilisant html5 ?
<!DOCTYPE html> <html lang="fr"> <!-- [...] -->
https://www.w3schools.com/tags/tag_doctype.asp
Etrange, sur mon test avec ton code css et html, en ajoutant le nowrap, le menu "E-learning & Quiz" reste bien sur une seule ligne : https://jsfiddle.net/29ejwzyn/
En inspectant l'élément html avec l'outil de développement du navigateur, la règle white-space: nowrap; est-elle bien appliquée ? Rafraichissement du cache ?
Peux tu nous donner le lien de la page si celle-ci est accessible en ligne ? (Tu peux me l'envoyer par message privé si tu ne veux pas que l'URL soit publique)
En inspectant l'élément html avec l'outil de développement du navigateur, la règle white-space: nowrap; est-elle bien appliquée ? Rafraichissement du cache ?
Peux tu nous donner le lien de la page si celle-ci est accessible en ligne ? (Tu peux me l'envoyer par message privé si tu ne veux pas que l'URL soit publique)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le soucis vient surement du fait que ton menu est positionné en flottant (ul#nav { float: left; }), l'élément div.container qui contient le menu ne prends donc pas en compte la taille de l'élément flottant inclus.
Une solution simple pour corriger ceci est d'appliquer un overflow: auto sur le conteneur qui contient l'élément flottant en créant par exemple une classe clearfix :
https://jsfiddle.net/29ejwzyn/1/
https://fr.learnlayout.com/clearfix.html
https://www.w3schools.com/howto/howto_css_clearfix.asp
Une solution simple pour corriger ceci est d'appliquer un overflow: auto sur le conteneur qui contient l'élément flottant en créant par exemple une classe clearfix :
<div class="container clearfix"> <div class="content"> <ul id="nav"> <!-- ... --> </ul> </div> </div>
.clearfix { overflow: auto; }
https://jsfiddle.net/29ejwzyn/1/
https://fr.learnlayout.com/clearfix.html
https://www.w3schools.com/howto/howto_css_clearfix.asp
La solution avec le "overflow: auto;" n'est qu'un exemple de solution pour gérer les soucis de positionnement avec float. As tu essayé le deuxième (meilleur) exemple proposé sur w3shcools ?
Avec des images je ne peux faire que des suppositions, il faudrait le code html/css pour t'aider plus précisément.
.clearfix::after { content: ""; clear: both; display: table; }
Avec des images je ne peux faire que des suppositions, il faudrait le code html/css pour t'aider plus précisément.