2013-07-25 12 views
11

Ho due pulsanti di opzione, ho bisogno di impostare il colore di sfondo al clic. Il mio codice funziona su tutti i browser ad eccezione di IE8. È possibile ottenere questo funzionamento per IE8 senza l'uso di Javascript?Come posso ottenere uno pseudo elemento css: selezionato per funzionare in IE8 senza Javascript?

<form> 
    <input type="radio" id="m" name="gender" value="male"> 
    <label for="m">male</label> 
    <input type="radio" id="f" name="gender" value="female"> 
    <label for="f">female</label> 
</form> 

input:checked + label{ 
    background:red; 
} 

http://jsfiddle.net/chrimbus/sXjyL/3/

+0

Se il browser non supporta il selettore CSS, e in questo caso non c'è alternativa al ': checked', allora temo che la risposta è 'no. ' –

+0

Per le persone che trovano questo argomento, si prega di notare: In tutti i browser, tranne IE8, è possibile utilizzare lo stile CSS in stile CSS senza l'utilizzo di JS. La risposta qui sotto descrive come si può supportare IE8, con l'uso di JS. – nthChild

risposta

12

Mentre IE8 understands selettori di fratelli adiacenti, doesn't understand lo pseudo-elemento checked, così, purtroppo, non è possibile rendere il codice IE8-friendly utilizzando solo i CSS.

Dai un'occhiata a Selectivizr o IE7.js per una soluzione JavaScript.

1

Si può provare questo:

input[checked=checked] + label{ 
    background:red; 
} 
+3

Funziona se la pagina viene caricata con checked = "checked" sul posto. Ma ti avverto che deselezionare l'input non cambierà l'aspetto. –