CSS
Disposition en ligne intégrée
Recherche…
Barre de navigation justifiée
La barre de navigation (menu) justifiée horizontalement contient un certain nombre d'éléments à justifier. Le premier élément (à gauche) n'a pas de marge gauche dans le conteneur, le dernier élément (à droite) n'a pas de marge droite dans le conteneur. La distance entre les éléments est la même, indépendamment de la largeur de chaque élément.
HTML
<nav>
<ul>
<li>abc</li>
<li>abcdefghijkl</li>
<li>abcdef</li>
</ul>
</nav>
CSS
nav {
width: 100%;
line-height: 1.4em;
}
ul {
list-style: none;
display: block;
width: 100%;
margin: 0;
padding: 0;
text-align: justify;
margin-bottom: -1.4em;
}
ul:after {
content: "";
display: inline-block;
width: 100%;
}
li {
display: inline-block;
}
Remarques
- Les balises
nav
,ul
etli
ont été choisies pour leur signification sémantique «une liste d'éléments de navigation (menu)». D'autres balises peuvent également être utilisées bien sûr. - Le pseudo-élément
:after
provoque une "ligne" supplémentaire dans l'ul
et donc une hauteur supplémentaire vide de ce bloc, poussant d'autres contenus vers le bas. Ceci est résolu par lamargin-bottom
négative enmargin-bottom
, qui doit avoir la même amplitude que laline-height
laline-height
(mais négative). - Si la page devient trop étroite pour que tous les éléments soient ajustés, les articles se retrouveront sur une nouvelle ligne (en partant de la droite) et seront justifiés sur cette ligne. La hauteur totale du menu augmentera au besoin.
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow