Reputation: 131
I am trying to align the class="nav-item login" items to the right. I know I can do it using "navbar-nav ml-auto", but I am wondering if there is a way to do it in the stylesheet?
The HTML and CSS for my problem is listed below. Thanks
.navbar {
font-family: 'Roboto', sans-serif;
}
.navbar-light .navbar-brand {
text-decoration: none;
color: #000000;
}
.navbar-brand:hover {
text-decoration: underline;
}
.login {
margin-left: auto;
}
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="{% url 'great_songs:great_songs' %}">Great Songs</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbar">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="{% url 'great_songs:great_songs' %}">Songs</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'great_songs:artists' %}">Artists</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'great_songs:genres' %}">Genres</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'great_songs:producers' %}">Producers</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'great_songs:labels' %}">Labels</a>
</li>
{% if user.is_authenticated %}
<li class="nav-item login">
<a class="nav-link" href="{% url 'users:logout' %}">log out</a>
</li>
{% else %}
<li class="nav-item login">
<a class="nav-link" href="{% url 'users:login' %}">log in</a>
</li>
<li class="nav-item login">
<a class="nav-link" href="{% url 'users:register' %}">register</a>
</li>
{% endif %}
</li>
</ul>
</div>
</nav>
Upvotes: 0
Views: 115
Reputation: 3116
Is this what you want?
.navbar {
font-family: 'Roboto', sans-serif;
display: flex;
justify-content: space-between;
}
.navbar-light .navbar-brand {
text-decoration: none;
color: #000000;
}
.navbar-brand:hover {
text-decoration: underline;
}
.login {
margin-left: auto;
}
@media only screen and (max-width: 1000px) {
#login-list {
display: inherit;
}
}
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Great Songs</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbar">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="#">Songs</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Artists</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Genres</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Producers</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Labels</a>
</li>
</ul>
<ul class="navbar-nav" id="login-list">
<li class="nav-item login">
<a class="nav-link" href="#">Log out</a>
</li>
<li class="nav-item login">
<a class="nav-link" href="#">Log in</a>
</li>
<li class="nav-item login">
<a class="nav-link" href="#">Register</a>
</li>
</ul>
</div>
</nav>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"></script>
<script type="text/javascript" src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script>
Upvotes: 1
Reputation: 3333
It's very simple.
You don't even need css for that.
Just use d-flex justify-content-end
.
Put that line of code inside the div that holds the <ul>
.
Example :
<div class="d-flex justify-content-end">
<ul>
<li>
</li>
</ul>
</div>
Hope this helps .
Upvotes: 1
Reputation: 5355
First of all you need to make a little correction in your CSS code to change the .navbar selector to #navbar since you have defined it as id in HTML Rest you can simply use float: right; property in the #navbar to get it on the right. I removed some of the DTL tags
#navbar {
font-family: "Roboto", sans-serif;
float: right;
}
.navbar-light .navbar-brand {
text-decoration: none;
color: #000000;
}
.navbar-brand:hover {
text-decoration: underline;
}
.login {
margin-left: auto;
}
<div class="collapse navbar-collapse" id="navbar">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="{% url 'great_songs:great_songs' %}">Songs</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'great_songs:artists' %}">Artists</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'great_songs:genres' %}">Genres</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'great_songs:producers' %}">Producers</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'great_songs:labels' %}">Labels</a>
</li>
<li class="nav-item login">
<a class="nav-link" href="{% url 'users:logout' %}">log out</a>
</li>
<li class="nav-item login">
<a class="nav-link" href="{% url 'users:login' %}">log in</a>
</li>
<li class="nav-item login">
<a class="nav-link" href="{% url 'users:register' %}">register</a>
</li>
</li>
</ul>
</div>
</nav>
Upvotes: 0
Reputation: 513
Which bootstrap version you have used? If you have used bootstrap 3 then add this css float:right; class of #navbar.
Upvotes: 1