#html #css #checkbox
Вопрос:
Я пытаюсь создать отзывчивую навигационную панель, к сожалению, флажок не работает. Я следил за видео на 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>
Я не знаю, как это исправить, так как я очень новичок в веб-разработке. Я действительно искал какое-то решение, но ни одно из них не сработало. Пожалуйста, помогите.
Комментарии:
1. Привет, не могли бы вы объяснить, пожалуйста, что должен делать флажок? Если вы хотите открыть меню после нажатия на них, вам понадобится немного Javascript
2. Ваши селекторы CSS не соответствуют вашему HTML . например:
#click:checked~nav
ищет ввод с идентификатором щелчка , стоящего впереди <nav>, вот он внутри. Идентификатор для#check:checked~ul
него находится внутри, когда селектор ищет его перед <ul>.
Ответ №1:
Вы можете начать устанавливать флажок за пределами навигации и вставлять его прямо перед навигацией, чтобы ваши селекторы 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>