我正在学习如何为移动设备构建汉堡菜单。
我构建了一个有三个孩子的导航。徽标、导航项和汉堡菜单。我使用 flexbox 将它们并排放置并显示:在桌面上的汉堡菜单上显示:none 以最初隐藏它。
我尝试使用位置相对/绝对,但它不太有效。此外,更改弹性方向:行到列也无济于事。
下面是导航栏的标记
<nav class="nav">
<div class="brand"><h4>The Brand</h4></div>
<div class="navigation">
<ul class="navigation__list">
<li class="navigation__item">
<a href="#">Home</a>
</li>
<li class="navigation__item">
<a href="#">About</a>
</li>
<li class="navigation__item">
<a href="#">Services</a>
</li>
<li class="navigation__item">
<a href="#">Gallery</a>
</li>
<li class="navigation__item">
<a href="#">Blog</a>
</li>
<li class="navigation__item">
<a href="#">Contact</a>
</li>
</ul>
</div>
<button class="hamburger">
<span class="hamburger__box">
<span class="hamburger__inner"></span>
</span>
</button>
</nav>
我想实现的是:在移动设备上,应该出现汉堡菜单。导航项应从屏幕上消失,并应垂直放置。我希望它们在点击汉堡包时从右侧滑入。
代码笔:https://codepen.io/kowalik9412/pen/WNeMQrO
只需使用bootstrap。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js" integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o" crossorigin="anonymous"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<nav class="navbar navbar-expand-lg navbar-light bg-white">
<a class="navbar-brand" href="#"><h4>The Brand</h4></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<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" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Services</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Gallery</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Blog</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact</a>
</li>
</div>
</li>
</ul>
</div>
</nav>
您必须在导航div类列表中切换一个类。 你的JavaScript代码如下。
const handleClick = () => {
navigation.classList.toggle("show");
};
并且您必须将媒体 CSS 添加到导航类中。 媒体 CSS 代码如下。
@media (max-width: 700px) {
.navigation.show {
display: none;
}
.navigation.show {
display: block;
}
}
然后,您必须根据需要设置剩余的设计。 此代码只是帮助您最初在移动设备中隐藏菜单,并在单击汉堡菜单按钮时打开它。
谢谢。