我有一个响应式导航栏,当我移动“工作”和“联系”链接向右浮动时,它会颠倒顺序。我尝试将它们添加到div中,但是当我这样做时,“工作”链接显示在移动视图中的汉堡菜单旁边。
.topnav {
overflow: hidden;
position: fixed;
width: 100%;
z-index: 5;
padding-top: 20px;
}
.topnav a {
float: left;
display: block;
color: black;
text-align: center;
padding: 16px;
line-height: 19px;
text-decoration: none;
font-size: 18px;
}
.topnav a:hover {
color: black;
}
.topnav a.active {
color: black;
}
.topnav .icon {
display: none;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="topnav" id="myTopnav">
<a href="home.html" class="active">NAME</a>
<a href="work.html">WORK</a>
<a href="contact.html">CONTACT</a>
<a href="javascript:void(0);" class="icon" onclick="myFunction()">
<i class="fa fa-bars"></i>
</a>
</div>
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
当前是这样,但是当我添加此代码以向右浮动时,就是发生保留单问题
.topnav a:not(:first-child) {
float: right;
padding-right: 32px;
padding-left: 0px;
}
这可能是一个快速的解决方案(例如,向右浮动,其中包含左浮动元素):
.topnav {
overflow: hidden;
position: fixed;
width: 100%;
z-index: 5;
padding-top: 20px;
}
.topnav a {
float: left;
display: block;
color: black;
text-align: center;
padding: 16px;
line-height: 19px;
text-decoration: none;
font-size: 18px;
}
.topnav a:hover {
color: black;
}
.topnav a.active {
color: black;
}
.topnav .icon {
display: none;
}
span.right {
float: right;
}
.topnav a:not(:first-child) {
padding-right: 32px;
padding-left: 0px;
}
<div class="topnav" id="myTopnav">
<a href="home.html" class="active">NAME</a>
<span class="right">
<a href="work.html">WORK</a>
<a href="contact.html">CONTACT</a>
</span>
<a href="javascript:void(0);" class="icon" onclick="myFunction()">
<i class="fa fa-bars"></i>
</a>
</div>