我正在尝试添加此功能,当点击“。”时,hr元素的背景颜色应从灰色变为白色,并在活动时保持白色。
再次按下时,它应该会变回灰色。
我使用jQuery实现了这一点 - 有没有办法用纯CSS做到这一点?
此处代码:https://jsfiddle.net/e3ux2ffb/
CSS:*
{
margin:0 auto;
padding:0px;
}
.top {
background-color:black;
width: 100%;
height: 60px;
}
.icon {
width: 28px;
border:1px solid gray;
padding:5px;
float:right;
position:relative;
top:50%;
-webkit-transform: translateY(-50%);
margin-right:10px;
}
.icon hr:not(:first-child) {
margin-top:5px;
}
.icon hr {
height: 2px;
background-color:gray;
border:0px;
}
.icon:hover {
cursor:pointer;
}
.icon:active, .icon:focus {
background-color:white;
}
HTML:
<div class="top">
<div class="icon">
<span><hr><hr><hr></span>
</div>
</div>
答案 0 :(得分:12)
使用纯CSS,有一个带有复选框和:checked
伪元素的技巧。
看到它正常工作:https://jsfiddle.net/e3ux2ffb/3/
input[type=checkbox] { display: none; }
input[type=checkbox]:checked + label { background:white;}
<div class="top">
<input type="checkbox" id="chckbx">
<label for="chckbx" class="icon">
<span><hr><hr><hr></span>
</label>
</div>
答案 1 :(得分:1)
是的..你只需要一个触发器,如单选按钮或复选框.. 结合不同的选择器.. 例如:
checkbox:checked ~ div {
background-color: green;
}
但您需要使用display:none
隐藏该复选框