gpt4 book ai didi

javascript - 在没有javascript的情况下操作css类

转载 作者:行者123 更新时间:2023-11-30 11:42:22 25 4
gpt4 key购买 nike

我想用 css 制作“菜单图标”,就像在这个链接中一样:http://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_menu_icon_js , 但我不想在我的代码中使用 javacript。

这是 HTML 代码:

  <body>
<input type="checkbox" id="showblock" />

<div id="mySidenav" class="sidenav"> <!-- CSSnya di 2691 -->
<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 for="showblock" class="bar1"></label>
<label for="showblock" class="bar2"></label>
<label for="showblock" class="bar3"></label>
</div>
</body>

和CSS代码:

    .mobiletoggle{ float:right;}
.mobiletoggle label{ display: block; cursor: pointer; }
#showblock{
display: none;
}
.bar1, .bar2, .bar3 {
width: 30px;
height: 3px;
background-color: #333;
margin: 6px 0;
transition: 0.4s;
}

.change .bar1 {
-webkit-transform: rotate(-45deg) translate(-9px, 6px) ;
transform: rotate(-45deg) translate(-9px, 6px) ;
}

.change .bar2 {opacity: 0;}

.change .bar3 {
-webkit-transform: rotate(45deg) translate(-8px, -8px) ;
transform: rotate(45deg) translate(-8px, -8px) ;
}
@media screen and (min-width:768px){.mobiletoggle{ display:none;}}
@media screen and (max-width:767px) {
.sidenav{
width:0px;
height: 100%;
padding-top: 3%;
background-color: #fff;
opacity: 0.9;
}
#showblock:checked + .sidenav {
width: 85%;
transition: 0.8s;
}

#showblock:checked + .bar1 {
-webkit-transform: rotate(-45deg) translate(-9px, 6px) ;
transform: rotate(-45deg) translate(-9px, 6px) ;
}

#showblock:checked + .bar2 {opacity: 0;}

#showblock:checked + .bar3 {
-webkit-transform: rotate(45deg) translate(-8px, -8px) ;
transform: rotate(45deg) translate(-8px, -8px) ;
}}

我不知道如何使用 .change 就像链接示例中的 CSS(它使用了 javascript),所以我使用了 #showblock:checked + .bar 来操纵动画。 如何将 .change 与 CSS 一起使用?

最佳答案

这在纯 CSS3 中可以通过(ab)使用复选框、:checked 伪类选择器和通用兄弟选择器 ~ 实现。

想法是在更高的 z-index 上隐藏一个不可见的 (opacity: 0;) 复选框,覆盖您的菜单按钮。当 checked 时,这会激活 :checked ~ ... 选择器所针对的样式,从而改变条形。

您需要调整复选框的尺寸和一般位置。

.container {
position: relative;
width: 35px;
height: 35px;
}

.toggle {
margin: 0;
display: block;
position: absolute;
width: 35px;
height: 27px;
opacity: 0;

outline: none;
-webkit-appearance: none;
border: none;

z-index: 100;
cursor: pointer;
}

.bar1, .bar2, .bar3 {
width: 35px;
height: 5px;
background-color: #333;
margin: 6px 0;
transition: 0.4s;
}

.toggle:checked ~ .bar1 {
-webkit-transform: rotate(-45deg) translate(-9px, 6px) ;
transform: rotate(-45deg) translate(-9px, 6px) ;
}

.toggle:checked ~ .bar2 {opacity: 0;}

.toggle:checked ~ .bar3 {
-webkit-transform: rotate(45deg) translate(-8px, -8px) ;
transform: rotate(45deg) translate(-8px, -8px) ;
}
<div class="container">
<input type="checkbox" class="toggle" />
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
</div>

关于javascript - 在没有javascript的情况下操作css类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42177216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com