我有这样的代码:http://jsfiddle.net/eYgdm/345/多<input>功能
<label for="check" class="btn btn-default">Toggle background colour</label>
<input type="checkbox" id="check" />
<div class="test1"></div>
<div class="test2"></div>
CSS:
.test1 {
width: 100%;
height: 100%;
background: #5CB85C;
position: absolute;
top: 0;
left: 0;
z-index:1;
}
.test2 {
position:absolute;
background: #FFFFFF;
top:100px;
z-index:2;
width:100px;
height:100px;
}
label.btn {
position: absolute;
top:10px;
left: 10px;
z-index:2;
user-select: none;
}
input[type="checkbox"] {
display: none;
}
input[type="checkbox"]:checked + test1 {
background: #5BC0DE;
}
input[type="checkbox"]:checked + test2 {
background: #000000;
}
label + input[type="checkbox"]:checked {
background: #000;
}
当按钮被选中改变TEST1和TEST2背景我想要的。但它只用于一个工作(例如,如果只有test1但不是测试2)
这是有点滥用CSS。理想情况下,这种功能应该使用JavaScript来完成,因为即使对文档结构稍作修改也会使CSS选择器无效并导致此“功能”被破坏。 – Dai 2014-11-23 11:39:10
@戴我不同意。使用兄弟选择器和伪类是避免JS对诸如此类非常简单的功能的需求的绝佳方法。另外,JS的效率更高,JS需要更多的行和字节(绑定点击/更改事件处理程序,切换类或更改内联样式)。 – Terry 2014-11-23 11:39:56