【发布时间】:2021-06-14 04:05:05
【问题描述】:
我已经阅读了所有关于此的类似帖子,但没有一个对我有用。
我正在尝试使用一些 YouTube 教程制作一个响应式导航栏,我有一个复选框可以在宽度太小时隐藏显示菜单。我已经看到控制台在寻找错误,但没有错误,我已经将浏览器从 chrome 更改为 edge 和 firefox,但它似乎也不是浏览器。此外,我更改了 HTML 中的标签顺序,以完成同级一般规则,但没有任何效果,我有点卡住了。
下面是我的 HTML 代码:
<header>
<nav>
<img class="logo" src="/responsive1/logo.svg" alt="logo">
<input type="checkbox" class="check">
<label for="check" class="checkbtn">
<i class="fas fa-bars"></i>
</label>
<ul>
<li><a href="#" class="active">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>
这是我想用来隐藏和显示菜单的 CSS 代码:
@media (max-width: 858px) {
ul {
position: fixed;
width: 100%;
height: 100vh;
background: #2c3e50;
top: 80px;
left: -100%;
text-align: center;
transition: all .5s;
}
.check:checked~ul{
left: 0;
}
}
这里的一个相关细节是,当我添加 ~ 字符然后我在浏览器检查器中单击
这是我正在学习的教程,他做的确切部分是在 6:30 分钟: https://www.youtube.com/watch?v=oLgtucwjVII
如果有帮助,这里是所有 CSS 代码:
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500&display=swap');
* {
padding: 0px;
margin: 0px;
text-decoration: none;
list-style: none;
box-sizing: border-box;
font-family: "Montserrat", sans-serif;
}
body header {
background-color: #0082e6;
height: 80px;
width: 100%;
}
.logo {
width: 150px;
line-height: 80px;
margin: 15px 100px;
cursor: pointer;
}
nav ul {
float: right;
margin-right: 20px;
}
nav ul li {
display: inline-block;
line-height: 80px;
margin: 0 5px;
}
nav ul li a {
color: white;
font-size: 17px;
padding: 7px 13px;
border-radius: 3px;
text-transform: uppercase;
}
a .active,
a:hover {
background-color: #1b9bff;
transition: .5s;
}
.checkbtn {
font-size: 30px;
color: white;
float: right;
line-height: 80px;
margin-right: 40px;
cursor: pointer;
display: none;
}
.check {
display: none;
}
@media (max-width: 952px) {
.logo {
width: 100px;
margin: 25px 50px;
}
nav ul li a {
font-size: 16px;
}
}
@media (max-width: 858px) {
.checkbtn {
display: block;
}
ul {
position: fixed;
width: 100%;
height: 100vh;
background: #2c3e50;
top: 80px;
left: -100%;
text-align: center;
transition: all .5s;
}
nav ul li {
display: block;
margin: 50px 0;
line-height: 30px;
}
nav ul li a {
font-size: 20px;
}
a:hover,
a.active {
background-color: none;
color: #0082e6;
}
.check[type=checkbox]:checked~ul {
left: 0;
}
}
【问题讨论】:
-
尝试在波浪号前后使用空格`~`
-
@לבנימלכה 我做到了,但是当我保存它时就像加入了一样,我正在使用 Visual Studio Code
-
当您尝试这样做时,您确定您的视口小于 858 像素吗?您的复选框代码是该媒体查询的一部分。这是您的代码,没有任何更改:jsfiddle.net/whLo70ef
-
@John 是的,伙计,我真的很确定,我知道为什么它在那里工作,我什至在 W3Schools 编辑器中尝试过,但它也没有在那里工作
-
请在标签调用中打开 F12 ELEMENT 看看你的 css 会发生什么
标签: html css visual-studio-code liveserver