我正在尝试使用CSS3制作自定义复选框,在Chrome上效果非常好。但在Firefox上...就不是那么顺利了。
编辑:看起来在Firefox 37上它运行得很好。
下面的答案仍然相关,但2013年中期的样式问题已经解决。
这里没有提到IE支持,但有关它的编辑/答案是受欢迎的。
演示
HTML代码:
<input type="checkbox" id="first"/>
<label for="first">This is pretty awesome</label>
CSS:
input[type=checkbox] {
appearance: none;
background: transparent;
position: relative;
}
input[type=checkbox]::after {
position: absolute;
top: 0;
left: 0;
content: '';
text-align: center;
background: #aaa;
display: block;
pointer-events: none;
opacity: 1;
color: black;
border: 3px solid black;
}
input[type=checkbox] + label {
line-height: 48px;
margin: 0 15px 0 15px;
}
input[type=checkbox]:hover::after {
content: '';
background: #32cd32;
opacity: .3;
}
input[type=checkbox]:checked::after {
content: '\2713';
background: #32cd32;
}
input[type=checkbox]:checked:hover::after {
opacity: 1;
}
input[type=checkbox],
input[type=checkbox]::after {
width: 48px;
height: 48px;
font-size: 46px;
line-height: 48px;
vertical-align: middle;
border-radius: 50%;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
注意:出于简洁起见,我删除了供应商前缀和诸如user-select之类的内容。完整代码在pen中。
我需要改变什么才能使它在Firefox上看起来与Chrome相同?
期望效果:
不期望效果:
::after
变为标签的::before
。 - Brigand