2010-10-06 13 views
26

Per i guru CSS là fuori, questo markup restituisce una casella con un'etichetta Value1 alla sua destra, ma Value1 è troppo vicino alla casella di controllo.Riempimento tra checkbox ed etichetta

<dd id="rr-element"> 
    <label for="rr-1"> 
     <input type="checkbox" value="1" id="rr-1" name="rr[]"> 
     Value 1 
    </label> 
</dd> 

Così sto cercando di creare un effetto di padding-right alla destra della casella di controllo, ma non funziona. La casella di controllo e l'etichetta si muovono insieme. Come posso scegliere come target solo la casella di controllo o il suo testo, quindi creo un intervallo di riempimento?

dd label input { 
    padding-right:100px; 
} 
+0

Perché è il vostro casella di controllo all'interno dell'etichetta? – casablanca

+4

@casa: perché evita di avere uno spazio non selezionabile tra l'etichetta e la casella di controllo. – BalusC

+0

@BalusC: Interessante, non l'ho mai notato prima. – casablanca

risposta

31

Utilizzare margin-right. padding si trova all'interno dell'elemento e spesso funziona in modo divertente con gli elementi di input perché sono renderizzati utilizzando i componenti di input nativi del sistema operativo e sono un disastro da personalizzare in generale.

JSFiddle here

+0

Divertente l'ho provato prima di postare e non ha funzionato. Si scopre che si tratta di un problema a cascata, è necessario aggiungere '! Important' – jblue

+3

@jblue in questo caso, preferirei un 'etichetta dd # rr-element input {margin-right: 100px; } '-'! important' spesso crea più problemi di quanti ne risolva. –

0

n divario tra cliccabile casella ed etichetta.
Nessuna disconnessione della casella di controllo e dell'etichetta.
Nessuno spazio aggiunto per rientri di codice.
Più leggibile.

<dd id="rr-element"> 
    <input type="checkbox" value="1" id="rr-1" name="rr[]"> 
    <label for="rr-1">Value 1</label> 
</dd> 

<style> 
#rr-element { 
    white-space: nowrap; 
} 

#rr-element label { 
    padding-left: 0.4em; 
} 
</style> 
+0

Attributo 'for' assolutamente ridondante, quando tu * dovresti * mettere la' checkbox' all'interno dell'etichetta. –

+0

L'etichetta può racchiudere l'elemento del modulo. Ma non è così pulito. Entrambi i metodi sono validi. Entrambi hanno i loro pro e contro. Vediamo la tua casella di controllo all'interno dell'etichetta che raggiunge tutte le cose che ho elencato. – NOYB

+0

@Dark Absol - Ridondante! = Cattivo. "Anche in questi casi, tuttavia, è consigliabile impostare l'attributo for perché alcune tecnologie assistive non comprendono le relazioni implicite tra etichette e widget." https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/How_to_structure_an_HTML_form – NOYB

Problemi correlati