2013-02-02 7 views
12

Sposób trzymania przycisku radiowego() lub pola wyboru [] razem z etykietą, gdy tekst zawija się, gdy okno przeglądarki jest węższe, aby nie kończy się to:jak zachować przycisk radiowy lub pole wyboru razem z jego etykietą, gdy treść zawija się w układzie przepływu?

  [ ] pepperoni [ ] anchovies [ ] mushrooms [ ] 
      olives 

EDYCJA w odpowiedzi na sugestie nowogr. Dzieki za sugestie. Prawie na miejscu. Działa doskonale w Chrome, FF i Opera , ale nie w IE9. Gdy strona jest label {white-space: nowrap} CSS i znaczniki są:

  <td> 
      <div> 
      <label> 
      <input type="radio" name="pizza" checked="true" 
      id="pepperoni" value="pepperoni" />pepperoni </label> 
      <label> 
      <input type="radio" name="pizza" 
      id="anchovies" value="anchovies" />anchovies </label> 
      <label> 
      <input type="radio" name="pizza" 
      id="mushrooms" value="mushrooms" />mushrooms </label> 
      <label> 
      <input type="radio" name="pizza" 
      id="olives" value="olives" />olives   </label> 
      </div> 
      </td> 

TD staje stałej szerokości w IE9; TD nie kurczą się, gdy okno przeglądarki jest węższe i uzyskać w ten sposób:

  (] pepperoni () anchovies () mushrooms () olives 

kiedy muszę to:

  () pepperoni () anchovies 
      () mushrooms () olives 

Czy istnieje dodatkowy trick IE9? Próbowałem umieścić rozpiętość zawierającą pojedynczy odstęp między etykietami: ...</label><span> </span><label>..., ale to nie zadziałało.

Odpowiedz

8

Otocz obie z kontenerem <span> i ustaw na nim white-space: nowrap;.

<span style="white-space: nowrap;"> 
    <input type="checkbox" id="in1" /> 
    <label for="in1">pepperoni</label> 
</span> 
<span style="white-space: nowrap;"> 
    <input type="checkbox" id="in2" /> 
    <label for="in2">anchovies</label> 
</span> 
<span style="white-space: nowrap;"> 
    <input type="checkbox" id="in3" /> 
    <label for="in3">mushrooms</label> 
</span> 
<span style="white-space: nowrap;"> 
    <input type="checkbox" id="in4" /> 
    <label for="in4">olives</label> 
</span> 

EDIT

Jak wspomniano przez @xiaoyi, można również użyć <label> się jako pojemnika:

<label style="white-space: nowrap;"> <input type="checkbox" /> pepperoni</label> 
<!-- etc --> 
+3

jak o ''? dużo czystsze – xiaoyi

+0

@xiaoyi: Dziękuję. Nie działa zgodnie z życzeniem w IE9. Zobacz edytowane pytanie. – Tim

+1

Teraz wcale nie hamuje linii! OP chce przełamać linię, ale nie między radiem a jego etykietą! – Rodrigo

-2

użyć CSS stylu zarządzać tym Określ pozycję jako absolutny i ręcznie podać współrzędne każdej pozycji komponentu.

+0

Nie potrzebuję etykiet wejściowych, aby idealnie wyrównać w kolumnach; wystarczy tylko trzymać znak() razem z jego etykietą w tej samej linii. – Tim

+0

Czy próbowałeś tak, może to być trochę trudne, możesz dodać kolejny komponent po(), może być div, z twoim wyborem odstępów (width-px), a następnie nazwą etykiety? – Dipak

0

Ustaw ścisły wysokość na samej

<input type="checkbox" style="height:13px;"> 
+0

Uh, co do @ #% # @ #% ma wysokość pola wyboru ma coś wspólnego? – Martha

7

wyboru można owinąć wejście i etykiety w <span> lub owinąć wejście wewnątrz etykiety. Tak czy inaczej, zewnętrzny pojemnik (przęsło lub etykieta) powinien mieć styl white-space:nowrap; display:inline-block. Działa to w IE9, a także w innych przeglądarkach. Więc twój ostateczny znaczniki powinny być:

<span style="white-space:nowrap; display:inline-block"> 
    <input type="checkbox" name="pizza" checked="true" 
    id="pepperoni" value="pepperoni" /> 
    <label for="pepperoni">pepperoni</label> 
</span> 

LUB

<label style="white-space:nowrap; display:inline-block"> 
    <input type="checkbox" name="pizza" checked="true" 
    id="pepperoni" value="pepperoni"/> 
    pepperoni 
</label> 
+0

To zadziałało dla mnie! Poszedłem w/stosując dwa style do "etykiety" w moim arkuszu stylów i voila! "white-space: nowrap;" sam nie działa, ale dodanie wyświetlacza: blok inline; "też się udało! Pięknie! :) – flipflopmedia

Powiązane problemy