单击时复选框不起作用,我该如何解决?
Checkbox doesnot work when clicked, how can i fix this?
我正在尝试构建响应式导航栏,不幸的是复选框不起作用。我正在关注导航栏的 youtube 视频。这是我的 HTML 代码:
body {
margin: 0;
padding: 0;
}
nav {
display: flex;
background-color: #457b9d;
justify-content: space-between;
align-items: center;
padding: 10px;
}
nav ul {
list-style: none;
display: flex;
margin: 0;
transition: font-size 0.5s ease-out;
font-size: 20px;
}
nav ul li {
margin: 10px;
color: white;
}
nav h2 {
color: white;
}
.fa {
padding: 5px;
font-size: 10px;
width: 15px;
text-align: center;
text-decoration: none;
margin: 5px 10px;
border-radius: 50px;
}
.fa-facebook {
background: white;
color: #3B5998;
}
.fa-instagram {
background: white;
color: #125688;
}
#social {
display: flex;
flex-direction: row;
align-items: center;
}
nav .menu-btn i {
color: white;
font-size: 22px;
margin: 0px 10px;
cursor: pointer;
display: none;
}
#click {
display: none;
}
@media (max-width:940px) {
nav .menu-btn i {
display: block;
}
#click:checked~nav .menu-btn i::before {
content: "\f00d";
}
nav ul {
position: fixed;
top: 80px;
left: -100%;
background-color: #457b9d;
height: 100vh;
width: 100%;
display: block;
text-align: center;
font-size: 30px;
padding: 0;
}
#check:checked~ul {
left: 0%;
}
nav ul li {
margin: 40px 0;
}
}
<meta charset="UTF-8">
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<nav>
<h2>TRT</h2>
<ul>
<li>About Us</li>
<li>Products</li>
<li>Facilities</li>
<li>Contact Us</li>
</ul>
<div id="social">
<a href="#" class="fa fa-facebook"></a>
<a href="#" class="fa fa-instagram"></a>
<input type="checkbox" id="click">
<label for="click" class="menu-btn">
<i class="fas fa-bars"></i>
</label>
</div>
</nav>
我不知道如何修复它,因为我对网络开发还很陌生。我确实搜索了一些解决方案,但其中 none 有效。请帮忙
您可以开始将复选框置于导航之外并将其插入到导航之前,这样您的 CSS 选择器就会变得高效。
然后将 #click:checked~ ul
更新为 #click:checked~nav ul
以遵循 html 结构。
示例:
body {
margin: 0;
padding: 0;
}
nav {
display: flex;
background-color: #457b9d;
justify-content: space-between;
align-items: center;
padding: 10px;
}
nav ul {
list-style: none;
display: flex;
margin: 0;
transition: font-size 0.5s ease-out;
font-size: 20px;
}
nav ul li {
margin: 10px;
color: white;
}
nav h2 {
color: white;
}
.fa {
padding: 5px;
font-size: 10px;
width: 15px;
text-align: center;
text-decoration: none;
margin: 5px 10px;
border-radius: 50px;
}
.fa-facebook {
background: white;
color: #3B5998;
}
.fa-instagram {
background: white;
color: #125688;
}
#social {
display: flex;
flex-direction: row;
align-items: center;
}
nav .menu-btn i {
color: white;
font-size: 22px;
margin: 0px 10px;
cursor: pointer;
display: none;
}
#click {
display: none;
}
@media (max-width:940px) {
nav .menu-btn i {
display: block;
}
#click:checked~nav .menu-btn i::before {
content: "\f00d";
}
nav ul {
position: fixed;
top: 80px;
left: -100%;
background-color: #457b9d;
height: 100vh;
width: 100%;
display: block;
text-align: center;
font-size: 30px;
padding: 0;
}
#click:checked~nav ul {
left: 0%;
}
nav ul li {
margin: 40px 0;
}
}
<meta charset="UTF-8">
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<input type="checkbox" id="click">
<nav>
<h2>TRT</h2>
<ul>
<li>About Us</li>
<li>Products</li>
<li>Facilities</li>
<li>Contact Us</li>
</ul>
<div id="social">
<a href="#" class="fa fa-facebook"></a>
<a href="#" class="fa fa-instagram"></a>
<label for="click" class="menu-btn">
<i class="fas fa-bars"></i>
</label>
</div>
</nav>
我正在尝试构建响应式导航栏,不幸的是复选框不起作用。我正在关注导航栏的 youtube 视频。这是我的 HTML 代码:
body {
margin: 0;
padding: 0;
}
nav {
display: flex;
background-color: #457b9d;
justify-content: space-between;
align-items: center;
padding: 10px;
}
nav ul {
list-style: none;
display: flex;
margin: 0;
transition: font-size 0.5s ease-out;
font-size: 20px;
}
nav ul li {
margin: 10px;
color: white;
}
nav h2 {
color: white;
}
.fa {
padding: 5px;
font-size: 10px;
width: 15px;
text-align: center;
text-decoration: none;
margin: 5px 10px;
border-radius: 50px;
}
.fa-facebook {
background: white;
color: #3B5998;
}
.fa-instagram {
background: white;
color: #125688;
}
#social {
display: flex;
flex-direction: row;
align-items: center;
}
nav .menu-btn i {
color: white;
font-size: 22px;
margin: 0px 10px;
cursor: pointer;
display: none;
}
#click {
display: none;
}
@media (max-width:940px) {
nav .menu-btn i {
display: block;
}
#click:checked~nav .menu-btn i::before {
content: "\f00d";
}
nav ul {
position: fixed;
top: 80px;
left: -100%;
background-color: #457b9d;
height: 100vh;
width: 100%;
display: block;
text-align: center;
font-size: 30px;
padding: 0;
}
#check:checked~ul {
left: 0%;
}
nav ul li {
margin: 40px 0;
}
}
<meta charset="UTF-8">
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<nav>
<h2>TRT</h2>
<ul>
<li>About Us</li>
<li>Products</li>
<li>Facilities</li>
<li>Contact Us</li>
</ul>
<div id="social">
<a href="#" class="fa fa-facebook"></a>
<a href="#" class="fa fa-instagram"></a>
<input type="checkbox" id="click">
<label for="click" class="menu-btn">
<i class="fas fa-bars"></i>
</label>
</div>
</nav>
我不知道如何修复它,因为我对网络开发还很陌生。我确实搜索了一些解决方案,但其中 none 有效。请帮忙
您可以开始将复选框置于导航之外并将其插入到导航之前,这样您的 CSS 选择器就会变得高效。
然后将 #click:checked~ ul
更新为 #click:checked~nav ul
以遵循 html 结构。
示例:
body {
margin: 0;
padding: 0;
}
nav {
display: flex;
background-color: #457b9d;
justify-content: space-between;
align-items: center;
padding: 10px;
}
nav ul {
list-style: none;
display: flex;
margin: 0;
transition: font-size 0.5s ease-out;
font-size: 20px;
}
nav ul li {
margin: 10px;
color: white;
}
nav h2 {
color: white;
}
.fa {
padding: 5px;
font-size: 10px;
width: 15px;
text-align: center;
text-decoration: none;
margin: 5px 10px;
border-radius: 50px;
}
.fa-facebook {
background: white;
color: #3B5998;
}
.fa-instagram {
background: white;
color: #125688;
}
#social {
display: flex;
flex-direction: row;
align-items: center;
}
nav .menu-btn i {
color: white;
font-size: 22px;
margin: 0px 10px;
cursor: pointer;
display: none;
}
#click {
display: none;
}
@media (max-width:940px) {
nav .menu-btn i {
display: block;
}
#click:checked~nav .menu-btn i::before {
content: "\f00d";
}
nav ul {
position: fixed;
top: 80px;
left: -100%;
background-color: #457b9d;
height: 100vh;
width: 100%;
display: block;
text-align: center;
font-size: 30px;
padding: 0;
}
#click:checked~nav ul {
left: 0%;
}
nav ul li {
margin: 40px 0;
}
}
<meta charset="UTF-8">
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<input type="checkbox" id="click">
<nav>
<h2>TRT</h2>
<ul>
<li>About Us</li>
<li>Products</li>
<li>Facilities</li>
<li>Contact Us</li>
</ul>
<div id="social">
<a href="#" class="fa fa-facebook"></a>
<a href="#" class="fa fa-instagram"></a>
<label for="click" class="menu-btn">
<i class="fas fa-bars"></i>
</label>
</div>
</nav>