Je dois aligner la barre au milieu de la barre de navigation verticalement. J'ai défini align-items: center for bar mais il aligne uniquement le bouton de connexion. Comme vous pouvez le voir, il est légèrement au-dessus de la position médiane.
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <div class="container" > <nav class="d-flex flex-row"> <h1 class="sling"><a href="index.html">Sling</a></h1> <ul> <li><a href="#">Home</a></li> <li><a href="#">Features</a></li> <li><a href="#">Pricing</a></li> <li><a href="#">Testimonial</a></li> <li><a href="#">Download</a></li> <li><a href="#">News</a></li> <li><a href="#">Contact us</a></li> </ul> <button type="button" class="signin">Sign in</button> </nav> </div>
nav a{ color:white; } nav{ justify-content: space-between; align-items: center; background-color: brown; } nav ul{ list-style: none; padding: 0; display: flex; align-items: center; background-color: black; } nav ul li a{ padding: 1rem 0; margin: 0 0.5rem; position: relative; font-size: 14px; font-weight: bold; } .container{ background-color: green; }
correctement.
3 Réponses :
Vous devez remettre à zéro la marge
inférieure de nav ul
. La marge existe en raison des styles de navigateur par défaut.
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <div class="container"> <nav class="d-flex flex-row"> <h1 class="sling"><a href="index.html">Sling</a></h1> <ul> <li><a href="#">Home</a></li> <li><a href="#">Features</a></li> <li><a href="#">Pricing</a></li> <li><a href="#">Testimonial</a></li> <li><a href="#">Download</a></li> <li><a href="#">News</a></li> <li><a href="#">Contact us</a></li> </ul> <button type="button" class="signin">Sign in</button> </nav> </div>
nav a { color: white; } nav { justify-content: space-between; align-items: center; background-color: brown; } nav ul { list-style: none; padding: 0; margin-bottom: 0; /* <-- + Added */ display: flex; align-items: center; background-color: black; } nav ul li a { padding: 1rem 0; margin: 0 0.5rem; position: relative; font-size: 14px; font-weight: bold; } .container { background-color: green; }
Utilisez mb-0
sur l'UL pour effacer la marge inférieure.
<nav class="d-flex flex-row align-items-center"> <h1 class="sling"><a href="index.html">Sling</a></h1> <ul class="mb-0"> <li><a href="#">Home</a></li> <li><a href="#">Features</a></li> <li><a href="#">Pricing</a></li> <li><a href="#">Testimonial</a></li> <li><a href="#">Download</a></li> <li><a href="#">News</a></li> <li><a href="#">Contact us</a></li> </ul> <button type="button" class="signin">Sign in</button> </nav>
Oui merci!
D'autres disent tous d'effacer la marge inférieure. Que diriez-vous de align-items: baseline;
au lieu de center:
nav { justify-content: space-between; align-items: baseline; background-color: brown; }
https://jsfiddle.net/davidliang2008/3nzgecrt/4/
p>