我正在嘗試使用CSS3自定義複選框,該功能在Chrome上運行良好。在Firefox上...不是那麼多。定製複選框在Firefox上失敗
編輯:似乎在Firefox 37
下面的答案是工作的罰款仍然是相關的,但是從2013年中期的風格有關的問題都解決了。
這裏沒有提到IE的支持,但是歡迎編輯/回答。
demo
的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;
}
注:我去掉供應商前綴,事情就是這樣的用戶選擇了簡潔。完整的代碼在筆中。
我需要更改哪些內容才能讓它看起來與Firefox上的相同?
期望:
不理想:
純CSS無法實現。 url:http://stackoverflow.com/questions/2587669/css-after-pseudo-element-on-input-field –
其他mozilla鏈接:http://forums.mozillazine.org/viewtopic.php?f=25&t= 291007 –
對不起,我修正了圖片。所以後文*在Firefox上顯示,但沒有顯示border-radius或box-shadow。我甚至願意以某種方式隱藏複選框。我試圖隱藏複選框,並將':: after'作爲標籤的':: before'。 – FakeRainBrigand