Centrer un sous menu

chamoismignon Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -  
chamoismignon Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   - 8 mars 2025 à 07:56

Bonjour,

je n'arrive pas à centrer un sous-menu dont voici le HTML

    <nav>
        <ul class="nav">

            <li><a href="#jaune">Menu1</a></li>
            
                        <li><a href="#">Menu2</a>
                <ul>
                    <li><a href="#green">Sous Menu1</a></li>
                    <li><a href="#grey">Sous Menu 2</a></li>
                </ul>
            </li>
            
                        <li><a href="#rocknroll">Menu3</a></li>
                        
            <li><a href="/formpage.html" target="_blank"></a></li>
        </ul>
</nav>

et les CSS

.nav li a
{
	display: inline-block;
	color: white;
	font-family: 'helvetica_now_text_black','Raleway', sans-serif;
	font-size: 24px;
	transition: all 0.3s;
	transform: scale(0.8);
	opacity: 1;
	white-space: nowrap;
	text-align:center;
	text-shadow: 1px 1px 2px black;
}

Merci pour votre aide, bonne journée ;)

A voir également:

4 réponses

Diablo76 Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   57
 

Salut,

Je ne comprends pas ta question, c'est le comportement normal d'un sous-menu qu'il soit décalé à droite par rapport au menu parent.

0
chamoismignon Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   1
 

Bonjour Diablo76,

Peut-être que je m'explique mal (j'en suis certain :) Un petit screenshot pour être clair : sous_Menu_a et sous_Menu_b ne sont pas centrés sur ma page par rapport à Menu2, il y a un décalage à gauche sur sous_Menu_a.

pour le coup, c'est pas terrible : / Comment puis-je y remédier ?

Merci beaucoup et bonne soirée.

0
Diablo76 Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   57
 

Ah ok, car dans l'exemple que tu donnes plus haut, tu imbriques une liste non ordonnée dans une liste non ordonnée, ce qui donne et c'est normal :

Maintenant pour une présentation comme ta copie d'écran :

Code Html :

<!DOCTYPE html>
<html lang="fr">

<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="style.css">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Menu</title>
</head>

<body>
    <header></header>
    <nav>
        <ul class="nav">
            <div>
                <li><a href="#">Menu1</a></li>
            </div>
            <div>
                <li><a href="#">Menu2</a>
                <li><a href="#green">Sous Menu1</a></li>
                <li><a href="#grey">Sous Menu 2</a></li>
            </div>
            <div>
                <li><a href="#">Menu3</a></li>
            </div>
        </ul>
    </nav>
    <footer></footer>
</body>

</html>

Code Css :

.nav {
    display: flex;
    justify-content: space-around;
    padding: 0;
    margin: 0;
    list-style-type: none;
    text-align: center;
}

.nav li a {
    text-decoration: none;
    color: #000000;
}

Resultat :

Ton décalage est surement dû à un problème de padding ou/et de margin.

1
chamoismignon Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   1
 

Bonjour Diablo76,

Merci pour tes réponses, c'est super sympa. Malheureusement, j'ai oublié une chose :(

La capture était pour te montrer le centrage d'un sous menu, ce que la capture ne montre pas du tout c'est que la barre de nav est fixée à droite, avec cette animation :

<script>
$(document).ready(function(){
	$('.nav').hide();
});
$(window).load(function(){
	$('.nav').fadeIn('slow');
	$(".nav").delay(700).animate({
		right:'10px',
		opacity:1
	},1200,'swing');
});
</script>

Peut-être serait-il possible de centrer les sous-menu "à la main" avec un margin, ce serait plus simple ? Est-ce possible ?

Bonne soirée ;)

0
Diablo76 Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   57
 

Salut,

Post ton code html et css de ta nav actuelle.

0
chamoismignon Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   1
 

Bonjour Diablo76,

voici le HTML

<nav>
	<ul class="nav">
		<li><a href="#jaune">Menu 1</a></li>
		<li>
			<a href="#">Menu 2</a>
			<ul>
				<li><a href="#green">Sous Menu 1</a></li>
				<li><a href="#glauque">Sous Menu 2</a></li>
			</ul>
		</li>
		<li><a href="#rocknroll">Menu 3</a></li>
		<li><a href="/formpage.html" target="_blank"></a></li>
	</ul>
</nav>

Et le CSS

.nav
{
	margin: 0;
	padding: 10px 10px 0 0;
	animation-duration: 1s;
	animation-name: slidein;
	text-align: right;
	left: -3000px;
	position: fixed;
	list-style-type: none;
}

@keyframes slidein
{
	from
	{
		font-size: 12px;
	}

	75%
	{
		font-size: 60px;
	}

	to
	{
		font-size: 20px;
	}
}

.nav ul, .nav li
{
	margin: 0;
	padding: 0;
}

.nav li
{
	display: inline;
	position: relative;
	list-style: none;
}

.nav li a
{
	display: inline-block;
	color: white;
	font-family: 'helvetica_now_text_black','Raleway', sans-serif;
	font-size: 24px;
	transition: all 0.3s;
	transform: scale(0.8);
	opacity: 1;
	-webkit-text-stroke: 0.8px black;
	white-space: nowrap;
	min-width: 3em;
	text-align:center;
}

.nav li a:hover
{
	color: white;
	transform: scale(1.2);
	opacity: 0.5;
}

.nav li ul
{
	display: none;
}

.nav li:hover ul
{
	z-index: 99999;
	display: block;
	position: absolute;
	top: 100%;
	right: 0;
}

Pour info, le slidein ne "fonctionne" plus.

Merci pour ton aide ;)

Bon week-end !

0