为什么我的 :active' 或 :checked 选择器不起作用?
Why don't my :active' or :checked selectors work?
我的网站上有一个隐藏的侧边栏菜单,如果我在我的桌面上打开我的网站,我的隐藏侧边栏有 100px 宽度(未满),所以要显示它,您只需将鼠标悬停在它上面。如果我在移动设备上打开我的网站,我隐藏的侧边栏没有宽度,我必须点击按钮才能显示侧边栏。
HTML:
<div id="mySidenav" class="sidenav sidenav-wrapper">
<img class="logo1" src="../img/logo1.png"><br><br>
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Contact</a>
</div>
<div id="contoh" class="content-section-b">
<div class="mobiletoggle">
<label class="fa fa-bars" for="showblock"></label>
<input type="checkbox" id="showblock" />
</div>
</div>
在上面的代码中我使用checkbox
来改变'click',因为我只想使用CSS.
CSS:
.sidenav {
height: 100%;
width: 100px;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: #111;
overflow-x: hidden;
padding-top: 60px;
transition: 0.8s;
}
.logo1 {
height: 10%;
width: auto;
padding-left: 20px;
transition: 0.8s;
}
.sidenav:hover {
width: 250px;
transition: 0.8s;
}
.sidenav:hover ~ #contoh {
background-color: rgba(0,0,0,0.4);
filter: grayscale(100%);
}
.sidenav:hover .logo1 {
height: auto;
width: 95%;
padding-left: 10px;
transition: 0.8s;
}
.sidenav a {
float:left;
width:100%;
padding: 8px 8px 8px 32px;
text-decoration: none;
font-size: 20px;
color: #818181;
display: block;
opacity: 0;
transition: opacity 1300ms
}
.sidenav a:hover, .offcanvas a:focus {
color: #f1f1f1;
background-color:#5fa2db;
font-size: 30px;
}
#showblock {
display: none;
}
@media screen and (min-width:768px) {
.mobiletoggle {
display:none;
}
}
@media screen and (max-width:767px) {
.sidenav {
width:0px;
}
#showblock:checked + .sidenav {
width: 250px;
transition: 0.8s;
}
}
在上面的代码中我使用了:checked
,如果我使用:active
就有点不同了。问题是为什么我的 :checked
/:active
不起作用?我查看了这个 jsFiddle,它工作正常,为什么我不能使用它?有什么建议吗?
根据您的 CSS,将您的 HTML 修改为:
<input type="checkbox" id="showblock">
<div id="mySidenav" class="sidenav sidenav-wrapper">
<img class="logo1" src="../img/logo1.png"><br><br>
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Contact</a>
</div>
<div id ="contoh" class="content-section-b">
<div class="mobiletoggle">
<label class="fa fa-bars" for="showblock"></label>
</div>
</div>
input
#showblock
应该高于 div
#mySidenav
才能使您的 CSS 正常工作。
#showblock:checked + .sidenav {
width: 250px;
transition: 0.8s;
}
我的网站上有一个隐藏的侧边栏菜单,如果我在我的桌面上打开我的网站,我的隐藏侧边栏有 100px 宽度(未满),所以要显示它,您只需将鼠标悬停在它上面。如果我在移动设备上打开我的网站,我隐藏的侧边栏没有宽度,我必须点击按钮才能显示侧边栏。
HTML:
<div id="mySidenav" class="sidenav sidenav-wrapper">
<img class="logo1" src="../img/logo1.png"><br><br>
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Contact</a>
</div>
<div id="contoh" class="content-section-b">
<div class="mobiletoggle">
<label class="fa fa-bars" for="showblock"></label>
<input type="checkbox" id="showblock" />
</div>
</div>
在上面的代码中我使用checkbox
来改变'click',因为我只想使用CSS.
CSS:
.sidenav {
height: 100%;
width: 100px;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: #111;
overflow-x: hidden;
padding-top: 60px;
transition: 0.8s;
}
.logo1 {
height: 10%;
width: auto;
padding-left: 20px;
transition: 0.8s;
}
.sidenav:hover {
width: 250px;
transition: 0.8s;
}
.sidenav:hover ~ #contoh {
background-color: rgba(0,0,0,0.4);
filter: grayscale(100%);
}
.sidenav:hover .logo1 {
height: auto;
width: 95%;
padding-left: 10px;
transition: 0.8s;
}
.sidenav a {
float:left;
width:100%;
padding: 8px 8px 8px 32px;
text-decoration: none;
font-size: 20px;
color: #818181;
display: block;
opacity: 0;
transition: opacity 1300ms
}
.sidenav a:hover, .offcanvas a:focus {
color: #f1f1f1;
background-color:#5fa2db;
font-size: 30px;
}
#showblock {
display: none;
}
@media screen and (min-width:768px) {
.mobiletoggle {
display:none;
}
}
@media screen and (max-width:767px) {
.sidenav {
width:0px;
}
#showblock:checked + .sidenav {
width: 250px;
transition: 0.8s;
}
}
在上面的代码中我使用了:checked
,如果我使用:active
就有点不同了。问题是为什么我的 :checked
/:active
不起作用?我查看了这个 jsFiddle,它工作正常,为什么我不能使用它?有什么建议吗?
根据您的 CSS,将您的 HTML 修改为:
<input type="checkbox" id="showblock">
<div id="mySidenav" class="sidenav sidenav-wrapper">
<img class="logo1" src="../img/logo1.png"><br><br>
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Contact</a>
</div>
<div id ="contoh" class="content-section-b">
<div class="mobiletoggle">
<label class="fa fa-bars" for="showblock"></label>
</div>
</div>
input
#showblock
应该高于 div
#mySidenav
才能使您的 CSS 正常工作。
#showblock:checked + .sidenav {
width: 250px;
transition: 0.8s;
}