gpt4 book ai didi

html - 如何根据 INPUT 的选中状态更改父 DIV 的背景

转载 作者:太空宇宙 更新时间:2023-11-04 08:21:59 25 4
gpt4 key购买 nike

我正在使用基于 Brad Bodine 示例的复选框 here .我对他的例子赋予我的能力感到兴奋,但我确实有一个问题。

我正在使用 slideThree(请参阅下面的 CSS)。它就像一个魅力,但我想根据 slider 的位置更改父 DIV 的背景颜色。我认为也许下面两个示例之一可以做到这一点:

.slideThree input[type=checkbox]:checked { background: green; }
.slideThree input[type=checkbox]:checked + div { background: green; }

但是没有一个有效。是否可以根据输入的选定状态更改背景?

HTML

<div class="slideThree">  
<input type="checkbox" value="None" id="test" name="check" checked />
<label for="test"></label>
</div>

CSS

/* .slideThree */
.slideThree {
width: 80px;
height: 26px;
background: #333;
margin: 20px auto;
position: relative;
border-radius: 50px;
box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.5), 0px 1px 0px rgba(255, 255, 255, 0.2);
}
.slideThree:after {
content: 'OFF';
color: #000;
position: absolute;
right: 10px;
z-index: 0;
font: 12px/26px Arial, sans-serif;
font-weight: bold;
text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.15);
}
.slideThree:before {
content: 'ON';
color: #27ae60;
position: absolute;
left: 10px;
z-index: 0;
font: 12px/26px Arial, sans-serif;
font-weight: bold;
}
.slideThree label {
display: block;
width: 34px;
height: 20px;
cursor: pointer;
position: absolute;
top: 3px;
left: 3px;
z-index: 1;
background: #fcfff4;
background: -webkit-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%);
background: linear-gradient(to bottom, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%);
border-radius: 50px;
-webkit-transition: all 0.4s ease;
transition: all 0.4s ease;
box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.3);
}
.slideThree input[type=checkbox] {
visibility: hidden;
}
.slideThree input[type=checkbox]:checked + label {
left: 43px;
}

/* end .slideThree */

最佳答案

感谢@LGSon。他的解决方案非常完美。这是对 HTML 的有效修改和对 CSS 的补充。我不得不添加 border 和 box-shadow 元素,因为 Firefox 不喜欢我将 SPAN 推到所有东西后面,所以 SPAN 正方形,等等。

<div class="slideThree">  
<input type="checkbox" value="None" id="test" name="check" checked />
<label for="test"></label>
<span></span>
</div>

还有 CSS...

.slideThree span{
display: block;
position: absolute;
width: 50px;
height: 16px;
background: red;
z-index: 0;
top: 0px;
left: 0px;
border-radius: 8px;
box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.5), 0px 1px 0px rgba(255, 255, 255, 0.2);
}
.slideThree input[type=checkbox]:checked ~ span { background: green; }

关于html - 如何根据 INPUT 的选中状态更改父 DIV 的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45468958/

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