Reputation: 155
I read a lot of post about this issue but I still cannot align my button to the right margin.
I have a navbar with multiple buttons and I need to align to the right the SingIn/SignOut button.
This is my code:
<header th:fragment="header">
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Spring Boot</a>
<button class="navbar-toggler" type="button" data-toggle="collapse"
data-target="#navbarNav" aria-controls="navbarNav"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<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" th:href="@{/listar}">Clientes</a>
</li>
</ul>
<ul class="navbar-nav mr-auto">
<li sec:authorize="!isAuthenticated()"><a
class="btn btn-outline-primary" th:href="@{/login}">Sign In</a></li>
<li sec:authorize="isAuthenticated()" class="dropdown show">
<a class="btn btn-outline-primary dropdown-toggle" href="#"
role="button" id="dropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false"><span sec:authentication="name"></span></a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<form id="logoutForm" th:action="@{/logout}" method="post">
<button class="dropdown-item" onclick="document.getElementById('logoutForm').submit();" type="submit">Sign Out</button>
</form>
</div>
</li>
</ul>
</div>
</nav>
Upvotes: 0
Views: 61
Reputation: 6358
Change your mr-auto
for ml-auto
in:
<ul class="navbar-nav mr-auto">
because the way you set it push the block to the left by adding a margin-right: auto;
Upvotes: 1
Reputation: 657
<header th:fragment="header">
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Spring Boot</a>
<button class="navbar-toggler" type="button" data-toggle="collapse"
data-target="#navbarNav" aria-controls="navbarNav"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav mr-auto"> <!-- add the mr-auto class here -->
<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" th:href="@{/listar}">Clientes</a>
</li>
</ul>
<ul class="navbar-nav"> <!-- remove the mr-auto class here -->
<li sec:authorize="!isAuthenticated()"><a
class="btn btn-outline-primary" th:href="@{/login}">Sign In</a></li>
<li sec:authorize="isAuthenticated()" class="dropdown show">
<a class="btn btn-outline-primary dropdown-toggle" href="#"
role="button" id="dropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false"><span sec:authentication="name"></span></a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<form id="logoutForm" th:action="@{/logout}" method="post">
<button class="dropdown-item" onclick="document.getElementById('logoutForm').submit();" type="submit">Sign Out</button>
</form>
</div>
</li>
</ul>
</div>
</nav>
See https://getbootstrap.com/docs/4.5/components/navbar/ for more info. The mr-auto class was in the wrong place. It sets margin right to auto, which you should have on the parent component, not on the child
Upvotes: 0