Comment aligner un élément de la barre de navigation sur la droite?
Je veux avoir le login et m'inscrire à droite . Mais tout ce que j'ai essayé ne semble pas fonctionner.
<div>
autour du <ul>
avec l'attribut: style="float: right"
<div>
autour du <ul>
avec l'attribut: style="text-align: right"
<li>
!important
ajouté à la finnav-item
en nav-right
dans le <li>
pull-sm-right
au <li>
align-content-end
au <li>
<div id="app" class="container">
<nav class="navbar navbar-toggleable-md navbar-light bg-faded">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">Navbar</a>
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricingg</a>
</li>
</ul>
<ul class="navbar-nav " >
<li class="nav-item">
<a class="nav-link" href="{{ url('/login') }}">Login</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url('/register') }}">Register</a>
</li>
</ul>
</nav>
@yield('content')
</div>
Bootstrap 4 a plusieurs différentes façons d'aligner les éléments de la barre de navigation . float-right
ne fonctionnera pas car la barre de navigation est maintenant flexbox
.
Vous pouvez utiliser le nouveau mr-auto
pour la marge droite automatique sur le 1er (à gauche) navbar-nav
. Alternativement, ml-auto
peut être utilisé sur le 2nd (à droite) navbar-nav
, ou si vous n’avez qu’un seul navbar-nav
.
<div id="app" class="container">
<nav class="navbar navbar-toggleable-md navbar-light bg-faded">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">Navbar</a>
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricingg</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="{{ url('/login') }}">Login</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url('/register') }}">Register</a>
</li>
</ul>
</nav>
</div>
http://www.codeply.com/go/P0G393rzfm
Il existe également des utilitaires flexbox. Dans ce cas, vous avez 2 navbar-nav
s, donc justify-content-between
dans navbar-collapse
fonctionnerait même l'espace entre eux,
<div class="navbar-collapse collapse justify-content-between">
<ul class="navbar-nav mr-auto">
..
</ul>
<ul class="navbar-nav">
..
</ul>
</div>
À partir de la version bêta de Bootstrap 4, ml-auto
fonctionnera toujours pour pousser les éléments vers la droite. Sachez simplement que les classes navbar-toggleable-
ont été changées en navbar-expand-*
Mise à jour barre de navigation à droite pour Bootstrap 4
Un autre scénario fréquent d'alignement à droite de la barre de navigation Bootstrap 4 comprend un bouton à droite qui reste en dehors de l'effondrement du mobile nav afin qu'il soit toujours affiché dans toutes les largeurs.
Bouton d'alignement droit toujours visible
Connexes: Bootstrap NavBar avec des éléments alignés à gauche, au centre ou à droite
Dans mon cas, je voulais juste un ensemble de boutons/options de navigation et ai constaté que cela fonctionnerait:
<div class="collapse navbar-collapse justify-content-end" id="navbarCollapse">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Sign Out</a>
</li>
</ul>
</div>
Donc, vous allez ajouter justify-content-end
à la division et omettre mr-auto
dans la liste.
Voici un exemple de travail .
Pour ceux qui sont toujours aux prises avec ce problème dans BS4, essayez simplement ci-dessous le code
<ul class="navbar-nav ml-auto">
Sur Bootsrap 4.0.0-beta.2
, aucune des réponses répertoriées ici ne fonctionnait pour moi. Enfin, le site Bootstrap m'a donné la solution, non pas via sa doc, mais via sa page code source ...
Getbootstrap.com aligne son droit navbar-nav
à droite à l'aide de la classe suivante: ml-md-auto
.
Sur Bootstrap 4
Si vous souhaitez aligner la marque à votre gauche et tous les éléments de la barre de navigation à droite, changez le mr-auto
par défaut en ml-auto
<ul class="navbar-nav ml-auto">
Utilisez ml-auto
au lieu de mr-auto
après avoir appliqué nav
justifier-contenu-end à la ul
Si vous voulez Accueil, Caractéristiques et Prix à gauche juste après votre nav-brand
, puis vous connecter et vous enregistrer à droite, placez les deux listes dans <div>
et utilisez .justify-content-between
:
<div class="collapse navbar-collapse justify-content-between">
<ul>....</ul>
<ul>...</ul>
</div>
utiliser la classe flex-row-reverse
<nav class="navbar navbar-toggleable-md navbar-light">
<div class="container">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">
<i class="fa fa-hospital-o fa-2x" aria-hidden="true"></i>
</a>
<div class="collapse navbar-collapse flex-row-reverse" id="navbarNavAltMarkup">
<ul class="navbar-nav">
<li><a class="nav-item nav-link active" href="#" style="background-color:#666">Home <span class="sr-only">(current)</span></a</li>
<li><a class="nav-item nav-link" href="#">Doctors</a></li>
<li><a class="nav-item nav-link" href="#">Specialists</a></li>
<li><a class="nav-item nav-link" href="#">About</a></li>
</ul>
</div>
</div>
</nav>
Il suffit d'ajouter la classe mr-auto à ul
<ul class="nav navbar-nav mr-auto">
Si vous avez une liste de menus dans les deux côtés, vous pouvez faire quelque chose comme ceci:
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<ul class="navbar-nav ml-auto">
<li class="nav-item active">
<a class="nav-link" href="#">left 1</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">left 2</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">left disable</a>
</li>
</ul>
Utilisez ce code pour déplacer les éléments vers la droite.
div class="collapse navbar-collapse justify-content-end"
L'exemple de travail pour BS v4.0.0-beta.2
:
<body>
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricingg</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Login</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Register</a>
</li>
</ul>
</div>
</nav>
<div class="container-fluid">
container content
</div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="node_modules/jquery/dist/jquery.slim.min.js"></script>
<script src="node_modules/popper.js/dist/umd/popper.min.js"></script>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</body>
Je suis en train d'exécuter Angular 4 (v.4.0.0) et ng-bootstrap (Bootstrap 4). Ce code ne sera pas toujours pertinent, mais nous espérons que les gens pourront choisir ce qui fonctionne. Il m'a fallu un certain temps pour trouver une solution permettant de justifier correctement mon repliement et de mettre en place un menu déroulant à partir de ma photo de profil Google (avec OAuth).
<div id="header" class="header">
<nav class="navbar navbar-toggleable-sm navbar-inverse bg-faded fixed-top">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">
<img alt='Brand' src='../assets/images/logo-white.png' class='navbar-logo-img d-inline-block align-top '>
<span class="navbar-logo-text">Oncoscape</span>
</a>
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
<ul class="navbar-nav float-left">
<a class="navbar-items nav-item nav-link active " *ngIf='authenticated' (click)='goDashboard()'>
<span class="fa fa-dashboard"></span>Dashboard
</a>
<a class="nav-item nav-link navbar-items active" href="http://resources.sttrcancer.org/oncoscape-contact">
<span class="fa fa-comments"></span>Feedback
</a>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img *ngIf='user && authenticated' class="navbar-pic" src={{user.thumbnail}} alt="Smiley face">
</a>
<div *ngIf='user && authenticated' class="dropdown-menu " aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" (click)="toProfile()">Account</a>
<div class="dropdown-item">
<app-login></app-login>
</div>
</div>
</li>
</ul>
</div>
</nav>
</div>
<router-outlet></router-outlet>
Pour Bootstrap 4 beta, un exemple de barre de navigation avec des éléments alignés sur le côté droit est:
<div id="app" class="container">
<nav class="navbar navbar-expand-md navbar-light bg-faded">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">Navbar</a>
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricingg</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="{{ url('/login') }}">Login</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url('/register') }}">Register</a>
</li>
</ul>
</nav>
</div>
L’utilisation de la boîte souple bootstrap aide, pour le problème ci-dessus, à contrôler le placement et l’alignement de votre élément de navigation. Ajouter mr-auto est une meilleure solution.
<div id="app" class="container">
<nav class="navbar navbar-toggleable-md navbar-light bg-faded">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">Navbar</a>
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricingg</a>
</li>
</ul>
<ul class="navbar-nav " >
<li class="nav-item">
<a class="nav-link" href="{{ url('/login') }}">Login</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url('/register') }}">Register</a>
</li>
</ul>
</nav>
@yield('content')
</div>
autre placement peut inclure
fixed- top
fixed bottom
sticky-top
Si tout ce qui précède échoue, j'ai ajouté 100% width à la classe navbar en CSS. Jusque-là, mr auto ne travaillait pas pour moi sur ce projet en 4.1.