当我点击导航按钮时,我的导航栏保持打开状态。我对编码真的很陌生,希望得到一些指导!我可以让汉堡包按钮打开和关闭就好了。但是当我点击一个链接浏览网站时,导航栏在我点击一个链接后保持打开状态。
*{
margin:0;
padding:0;
box-sizing: inherit;
}
.nav {
height: 50px;
width: 100%;
background-color: #4d4d4d;
/* position: relative; */
position: fixed;
z-index: 10;
}
.nav > .nav-header {
display: inline;
}
.nav > .nav-header > .nav-title {
display: inline-block;
font-size: 22px;
color: #fff;
padding: 10px 10px 10px 10px;
}
.nav > .nav-btn {
display: none;
}
.nav > .nav-links {
display: inline;
/* float: right; */
font-size: 18px;
}
.nav > .nav-links > a {
display: inline-block;
padding: 13px 10px 13px 10px;
text-decoration: none;
color: #efefef;
}
.nav > .nav-links > a:hover {
background-color: rgba(0, 0, 0, 0.3);
}
.nav > #nav-check {
display: none;
}
@media (max-width:700px) {
.nav > .nav-btn {
display: inline-block;
position: absolute;
right: 0px;
top: 0px;
}
.nav > .nav-btn > label {
display: inline-block;
width: 50px;
height: 50px;
padding: 13px;
}
.nav > .nav-btn > label:hover,.nav #nav-check:checked ~ .nav-btn > label {
background-color: rgba(0, 0, 0, 0.3);
}
.nav > .nav-btn > label > span {
display: block;
width: 25px;
height: 10px;
border-top: 2px solid #eee;
}
.nav > .nav-links {
position: absolute;
display: block;
width: 100%;
background-color: #333;
height: 0px;
transition: all 0.3s ease-in;
overflow-y: hidden;
top: 50px;
left: 0px;
z-index: 10;
}
.nav > .nav-links > a {
display: block;
width: 100%;
}
.nav > #nav-check:not(:checked) ~ .nav-links {
height: 0px;
}
.nav > #nav-check:checked ~ .nav-links {
height: calc(100vh - 50px);
overflow-y: auto;
}
}
<div class="nav">
<input type="checkbox" id="nav-check">
<div class="nav-header">
<div class="nav-title">
Gallegos Landscaping
</div>
</div>
<div class="nav-btn">
<label for="nav-check">
<span></span>
<span></span>
<span></span>
</label>
</div>
<div class="nav-links">
<a href="#">Home</a>
<a href="#about1">About</a>
<a href="#services1">Services</a>
<a href="#">Contact</a>
</div>
</div>
最佳答案
这就像您使用复选框来控制可见性一样,这实际上很智能,我以前从未见过,但在这个用例中它有些受限。
我认为更简单、更动态的方法是添加一些简单的 JavaScript。您可以将 onClick
处理程序添加到将通过添加 CSS 显示/隐藏菜单的菜单按钮。
例如:
// JS
const menu = document.querySelector('.menu');
const menuToggle = document.querySelector('.menuToggle');
menuToggle.addEventListener('click', (e) => {
e.preventDefault();
if (window.getComputedStyle(menu).display === 'block') {
menu.style.display = 'none';
} else {
menu.style.display = 'block';
}
});
这样您就可以更好地控制打开/关闭菜单。现在它保持打开状态,因为复选框处于选中状态但未更新
关于html - 单击导航按钮时如何关闭导航栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56641491/