2010-10-06 15 views
26

W tym miejscu dla znaczników CSS ten znacznik wyświetla pole wyboru z etykietą Value1 po prawej stronie, ale Value1 znajduje się zbyt blisko pola wyboru.Wypełnienie między polem wyboru a etykietą

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

Więc staram się stworzyć padding-right wpływ na prawo do wyboru, ale to nie działa. Pole wyboru i etykieta poruszają się razem. Jak mogę kierować tylko na pole wyboru lub jego tekst, aby utworzyć odstęp?

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

Dlaczego to pole wewnątrz etykiety? – casablanca

+4

@casa: ponieważ pozwala uniknąć luki między etykietą a polem wyboru. – BalusC

+0

@BalusC: Interesujące, nigdy wcześniej tego nie zauważyłem. – casablanca

Odpowiedz

31

Użyj margin-right. padding znajduje się wewnątrz elementu i często działa zabawnie z elementami wejściowymi, ponieważ są one renderowane za pomocą natywnych składników wejściowych systemu operacyjnego i ogólnie są kłopotliwe w dostosowywaniu.

JSFiddle here

+0

Śmieszne, próbowałem tego przed wysłaniem i nie zadziałało. Okazuje się, że jest to problem kaskadowy, musiał dodać '! Important' – jblue

+3

@jblue w tym przypadku, wolałbym polecić wejście etykiety' dd # rr-element {margin-right: 100px; } '-'! important' często stwarza więcej problemów niż rozwiązuje –

0

Nie unclickable luka między polem wyboru i etykiety.
Brak rozłączania zawijania wierszy pola wyboru i etykiety.
Nie dodano żadnych spacji przez wcięcia w kodzie.
Bardziej czytelny.

<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

Zupełnie redundantny atrybut 'for', kiedy * powinieneś * umieścić' checkbox' wewnątrz etykiety. –

+0

Etykieta może zawierać element formularza. Ale nie jest tak czysty. Obie metody są prawidłowe. Oba mają swoje plusy i minusy. Zobaczmy pole wyboru wewnątrz etykiety, które pozwala uzyskać wszystkie wymienione rzeczy. – NOYB

+0

@Dark Absol - Redundant! = Bad. "Jednak nawet w takich przypadkach za najlepszą praktykę uważa się ustawienie atrybutu for, ponieważ niektóre technologie pomocnicze nie rozumieją niejawnych relacji między etykietami i widżetami". https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/How_to_structure_an_HTML_form – NOYB

Powiązane problemy