Sto provando a creare caselle di controllo personalizzate con CSS3, che funziona perfettamente su Chrome. Su Firefox ... non così tanto.Caselle personalizzate non funzionanti su Firefox
Edit: sembra funzionare bene su Firefox 37.
La risposta che segue è ancora rilevante, ma le questioni legati agli stili da metà del 2013 sono stati risolti.
IE supporto non è menzionato qui ma le modifiche/risposte in merito sono ben accette.
demo
Il codice HTML:
<input type="checkbox" id="first"/>
<label for="first">This is pretty awesome</label>
Il 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;
}
Nota: ho rimosso prefissi vendor, e le cose come user-select per brevità. Il codice completo è nella penna.
Cosa devo cambiare per avere lo stesso aspetto su Firefox come su Chrome?
desiderata:
Non desiderare:
impossibile con puro CSS. url: http://stackoverflow.com/questions/2587669/css-after-pseudo-element-on-input-field –
altro link di mozilla: http://forums.mozillazine.org/viewtopic.php?f=25&t= 291007 –
Mi spiace, ho corretto l'immagine. Quindi il testo successivo * è * visualizzato su Firefox, ma non mostra il raggio del bordo o l'ombra della scatola. Sarei persino disposto a nascondere la casella in qualche modo. Sto cercando di nascondere la casella di controllo, e creo ':: after' a' :: before' dell'etichetta. – FakeRainBrigand