2013-07-12 18 views
11

Próbuję umieścić etykietę pola wejściowego obok niej, zamiast nad nią za pomocą programu ładującego. Zawijanie tego w form-horizontal działa, ale tak naprawdę nie jest w formie (tylko wywołanie ajaxowe, które odczytuje wartość). Czy istnieje sposób, aby po prostu przesunąć etykietę po lewej stronie wejścia?etykieta ładowania początkowego obok wejścia

<div class="controls-row"> 
     <div class="control-group"> 
      <label class="control-label" for="my-number">ALabel</label> 

      <div class="controls"> 
       <input id="my-number" type="number"/> 
      </div> 
     </div> 
    </div>  

skrzypcach jest http://jsfiddle.net/7VmR9/

+1

Odpowiedziałem tutaj: http://stackoverflow.com/questions/18404003/label-on-the-left-side -instead-above-an-input-field/33974788 pozdrowienia! –

Odpowiedz

4

div jest elementem block, że oznacza to zajmie tyle szerokość jak to możliwe, a element input jest w nim.

Jeśli chcesz label się obok elementu input: albo umieścić label w div lub dokonać div elementu inline-block.

+0

Stworzenie tej funkcji działa prawidłowo. Zamierzam powstrzymać się od zaakceptowania całkiem jeszcze, aby sprawdzić, czy istnieje wbudowany sposób, aby to zrobić z konstrukcjami bootstrap. –

+0

Jeśli istnieje sposób na zrobienie tego w bootstrapie, prawdopodobnie nie jest to proste, jak te 2 rozwiązania. @wikijames zasugerował, aby unosić etykietę, najpierw unikając elementów pływających, a po prostu unosząc etykietę prawdopodobnie nie będzie działało, jeśli nie będziesz również unosić elementu div. – zoran404

1

Możesz wziąć pomoc bezpośrednio ze strony, którą podali, dobrze udokumentowanej.

Oto Fiddle with Bootstrap css.

<div class="control-group"> 
<label class="control-label" for="inputEmail">Email</label> 
<div class="controls"> 
    <input type="text" id="inputEmail" placeholder="Email"> 
</div> 

+0

Nie chcę umieszczać tego w klasie poziomej, jeśli mogę tego uniknąć. Nie ma to formy opisanej w pytaniu. Umieszczenie go w układzie poziomym powoduje duże przesunięcie w lewo. Posługując się na przykład twoim skrzypkiem, chciałbym przenieść pola i etykiety formularzy do końca po lewej stronie okna. –

+0

Nie musisz usuwać klasy .form-horizontal. Zanurz się w kodzie i wprowadź dwie małe zmiany. .form-horizontal .control-label (Usuń szerokość), a następnie zmień wartość (Margin-left) w "form-horizontal .controls". W wierszu 1962, 1969 na pliku css programu bootstrap można go znaleźć. –

11

Tak, można to zrobić przez bootstrap struktury kolumnowej.

<div class="form-group"> 
    <label for="name" class="col-lg-4">Name:</label> 
    <div class="col-lg-8"> 
     <input type="text" class="form-control" name="name" id="name"> 
    </div> 
</div> 

Oto Bootply Demo

+0

Jedną z rzeczy, które należy zwrócić uwagę na tę technikę jest to, że col- * jest zdefiniowany jako float: left, co spowoduje, że wewnętrzny div wyrwie się z div grupy formularzy. Aby to uwzględnić, możesz użyć polecenia przepełnienie: ukryte w grupie formularzy. Polecam tworzenie kontenera semantycznego, takiego jak: .col-container { overflow: hidden; } –

Powiązane problemy