【发布时间】:2015-10-26 11:36:22
【问题描述】:
我想在网站上使用自定义复选框,所以对于初学者,我使用了一个自定义背景颜色的跨度,一旦检查,我就更改了 CSS 中的背景颜色,效果很好,背景颜色单击复选框时更改。但是,一旦我用图像背景 url 替换颜色值,它会在初始状态下显示背景图像,但在检查值后不会更改背景图像。复选框会短暂闪烁,但随后会继续显示原始背景图像。
网址正确,我可以在浏览器中打开图片。我尝试通过为标签而不是其中的跨度提供背景属性,但这具有相同的结果。在谷歌浏览器的检查器中,新的背景属性也是“活动的”(旧的被“划掉”),所以我不明白为什么它继续显示旧的。
HTML:
<input type="checkbox" id="unlimited" name="unlimited" value="unlimited" />
<label for="unlimited"><span></span>Unlimited amount</label>
CSS:
input[type="checkbox"] {
display:none;
}
input[type="checkbox"] + label span {
display:inline-block;
width:30px;
height:30px;
margin:-1px 4px 0 0;
vertical-align:middle;
background: url("../../static/img/checkbox1.jpg");
cursor:pointer;
}
input[type="checkbox"]:checked + label span {
background: url("../../static/img/checkbox2.jpg");
}
编辑:修正错字。这是只有背景颜色的代码,它可以按您的预期工作,一旦单击颜色变为绿色,您再次单击它会变为蓝色。 CSS:
input[type="checkbox"] {
display:none;
}
input[type="checkbox"] + label span {
display:inline-block;
width:30px;
height:30px;
margin:-1px 4px 0 0;
vertical-align:middle;
background: blue;
cursor:pointer;
}
input[type="checkbox"]:checked + label span {
background: green;
}
【问题讨论】:
-
您能否也展示一段有效的代码(使用背景颜色而不是图像),以便我们比较笔记?
-
我刚刚在第一篇文章中添加了这个!基本上它只是用颜色替换的 url(用于测试),这很奇怪。