Вы можете просто сделать это с помощью flex и автоматической маржи входа слева:
body {
font-family: 'Roboto', sans-serif;
}
.topnav {
background-color: #333;
overflow: hidden;
display: flex;
}
.topnav a {
color: #f2f2f2;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.loginnav {
margin-left: auto
}
.topnav a:hover {
background: #ddd;
color: black;
}
/* Add a color to the active/current link */
.topnav a.active {
background-color: #4CAF50;
color: white;
}
<!DOCTYPE html>
<html>
<link rel="stylesheet" type="text/css" href="css/style1.css">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<body>
<div class="topnav">
<a class="active" href="#home">Home</a>
<a href="#projects">Projects</a>
<a href="#contact">Contact</a>
<a class="loginnav" href="#login">Login</a>
</div>
</body>
</html>
Обратите внимание, что я удалил inline-block
из тега a
и добавил в .topnav
правило display: flex;
Сначала выведите его как flex, а затем выровняйте эти элементы до конца.