为什么不做我的:活跃'或:选中的选择器有效吗?

时间:2017-02-10 03:47:49

标签: html css css-selectors sidebar

我的网站上有一个隐藏的侧边栏菜单,如果我在桌面上打开我的网站,我隐藏的侧边栏宽度为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来更改“点击”,因为我只想使用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,它工作正常,为什么我不能使用它?有什么建议吗?

1 个答案:

答案 0 :(得分:2)

根据您的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;
}
相关问题