【发布时间】:2020-04-09 16:46:25
【问题描述】:
如何将移动视图中的菜单图标切换到屏幕左侧(就在名称下方并与名称对齐)后出现的导航链接(工作和联系人)移动。目前在媒体查询中定位 #js-menu.main-nav.active 以执行此操作,但没有运气。
在桌面视图中一切都应该是这样,但是当我缩小到移动设备并单击图标时,导航链接不在正确的位置。
let mainNav = document.getElementById("js-menu");
let navBarToggle = document.getElementById("js-navbar-toggle");
navBarToggle.addEventListener("click", function() {
mainNav.classList.toggle("active");
});
.navbar {
display: flex;
justify-content: space-between;
padding-bottom: 0;
height: 70px;
align-items: center;
}
.main-nav {
display: flex;
margin-right: 30px;
flex-direction: row;
justify-content: flex-end;
}
.main-nav li {
margin: 0;
list-style-type: none;
}
.nav-links {
margin-left: 40px;
}
.logo {
margin-top: 0px;
margin-left: 20px;
}
.navbar-toggle {
display: none;
}
.nav-links,
.logo {
text-decoration: none;
color: black;
}
.navbar {
font-size: 18px;
padding-bottom: 10px;
background: pink;
}
@media screen and (max-width: 500px) {
.navbar-toggle {
position: absolute;
top: 30px;
right: 30px;
display: block;
cursor: pointer;
font-size: 18px;
}
#js-menu.main-nav.active {
display: block;
text-align: left;
margin: 15px 15px 15px 0px;
padding-bottom: 4px;
}
.logo {
display: inline-block;
font-size: 18px;
margin-left: 20px;
}
.main-nav li {
text-align: left;
margin: 15px 15px 15px 0px;
padding-bottom: 4px;
}
.main-nav {
list-style-type: none;
display: none;
padding: 0px 20px;
}
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<body>
<nav class="navbar">
<span class="navbar-toggle" id="js-navbar-toggle">
<i class="fa fa-bars"></i>
</span>
<a href="#" class="logo">NAME</a>
<ul class="main-nav" id="js-menu">
<li>
<a href="#" class="nav-links">WORK</a>
</li>
<li>
<a href="#" class="nav-links">CONTACT</a>
</li>
</ul>
</nav>
</body>
【问题讨论】:
-
我将代码按原样输入到可运行的 sn-p 中 - 您缺少导航部分的结束标记。我在 . (不是答案,只是一个附录)
-
@RachelGallen 谢谢!
标签: javascript html css media-queries