Ho cercato a lungo qui per una risposta a questo, ma non ho ancora capito cosa sto cercando. Trovato questo CSS - How to Style a Selected Radio Buttons Label? ma la risposta ha comportato la modifica del markup, e questo è qualcosa che voglio evitare che spiegherò di seguito.Caselle di controllo CSS e pulsanti di opzione quando l'input è all'interno dell'etichetta?
Sto cercando di aggiungere caselle di controllo CSS3 personalizzate e pulsanti di opzione per il mio tema XenForo forum, e tutti i tutorial che ho letto su questo avere sull'etichetta dopo l'ingresso:
<input type="checkbox" id="c1" name="cc" />
<label for="c1">Check Box 1</label>
Tuttavia nel markup di XenForo l'ingresso è all'interno dell'etichetta:
<label for="ctrl_enable_rte">
<input type="checkbox" name="enable_rte" value="1" id="ctrl_enable_rte" {xen:checked "{$visitor.enable_rte}"} />
{xen:phrase use_rich_text_editor_to_create_and_edit_messages}
</label>
ho guardato in perché questo è, ma non ha trovato nulla correlate a caselle di controllo pulsanti css personalizzato/radio quando il markup è in questo modo. Voglio evitare di dover cambiare il markup, perché ho a che fare con un sistema di forum qui, e ciò implicherebbe la modifica di una serie di template core ... che dovrei quindi aggiornare il markup ogni volta che il software del forum mettere un aggiornamento (presumendo che i modelli siano cambiati).
Ho provato a creare regole CSS che funzionerebbero con questo tipo di markup, ma finora non ho avuto successo. Non ho molta esperienza con i CSS, non ho memorizzato tutti i selettori e le pseudo classi sono ancora abbastanza estranee a me, quindi speravo che qualcuno qui potesse chiarire se ciò fosse possibile, e se sì, come potrebbe andare su di esso. Ho già il mio sprite pronto per andare, ho solo bisogno di capire il CSS.
Il mio problema principale è che non riesco a capire come selezionare l'etichetta (solo le etichette coinvolte con questi ingressi ovviamente). Di solito è usato qualcosa come
input[type="checkbox"] + label
, ma quando l'etichetta non è dopo l'ingresso e invece al di fuori/prima che ... come faccio a selezionarlo?
Invece di selezionare l'etichetta per l'input controllato (che in questo caso non può essere eseguito in questo caso con CSS solo come selettore "padre" non esiste), potrebbero esserci soluzioni alternative con CSS. Cosa volevi che accadesse in particolare? –
@WesleyMurch Sto tentando di personalizzare tutte le caselle di controllo/pulsanti di opzione aggiungendo un'immagine sprite con la posizione di sfondo definita per ogni stato differente (selezionata, passa il mouse, attiva, attiva, disattivata). Non sono sicuro di cosa potrei scegliere per raggiungere questo obiettivo, tutte le esercitazioni relative alle caselle di controllo personalizzate css3 e simili avevano l'etichetta dopo l'input e il CSS lo rifletteva nello specifico. Scusa se non rispondo alla tua domanda in modo accurato o con abbastanza dettagli. –
La tua risposta è chiara ma le tue restrizioni non sono complete. Quindi, a parte il requisito di mantenere gli input all'interno dell'etichetta, sei in grado di modificare l'HTML? Ad esempio, potresti aggiungere un '' vuoto dopo ogni checkbox o avvolgere il contenuto adiacente in uno? In caso contrario, temo che tu sia bloccato usando javascript (e non è davvero una brutta cosa). –