2013-08-12 15 views
25

Po dodaniu input-group do form-inline, input-group pojawia się pod formularzem w "nowej linii" zamiast w linii z innymi elementami sterującymi.Używanie grupy wejściowej wewnątrz formularza liniowego

Wydaje się, że to dlatego, że klasa input-group owijka ma display zestaw do table natomiast pozostałe wejścia, które pracują w porządku, mają swoje display zestaw do inline-block. Oczywiście wyświetlanie obrazu input-groupinline-block nie jest możliwe, ponieważ jego przedział podrzędny add-on, który ma , potrzebuje właściwości elementu macierzystego, aby poprawnie wyrównać.

Więc moje pytanie brzmi: jest możliwe aby użyć input-group wewnątrz formularza inline używając wyłącznie klasy bootstrap? Jeśli nie, jaka byłaby najlepsza praca około pozwalająca na użycie niestandardowych klas.

Oto demo ilustrujący mój punkt widzenia. Kod jest następujący:

<form action="" class="form-inline"> 
    <input type="text" class="form-control" placeholder="Works with" style="width: 100px;"/> 
    <input type="text" class="form-control" placeholder="Text Inputs" style="width: 120px;"/> 

    <div class="checkbox"> 
     <label> 
      <input type="checkbox" /> and Checkboxes 
     </label> 
    </div> 
    <select class="form-control" style="width: 150px;"> 
     <option>and Selects</option> 
    </select> 

    <button type="submit" class="btn btn-default">and Buttons</button> 
    <div class="input-group" style="width: 220px;"> 
     <span class="input-group-addon">BUT</span> 
     <input type="text" class="form-control" placeholder="not with input-groups" /> 
    </div> 
</form> 
+2

Jest to błąd, może w twoim przypadku można użyć 'pull-right' w klasie' input-Grupą. – PiLHA

+0

Tak, to może być błąd. Używanie polecenia "pull-right" nie jest dobrym rozwiązaniem, niezależnie od mojego przypadku: pionowy odstęp między wejściami zostanie utracony, a jeśli są dwie grupy wejściowe, zostaną one wyświetlone niepoprawnie. IMHO lepiej jest używać działającego rozwiązania z klasami niestandardowymi niż błędnego hacka z wbudowanymi klasami. – edsioufi

Odpowiedz

42

To był rzeczywiście błąd i został rozwiązany (sprawdź numer issue on github, aby uzyskać więcej informacji).

Od tej pory formularze wstawiane w BootStrap wymagają zawijania formantów formularza potomnego za pomocą .form-group.

Więc mój kod stałby się:

<form action="" class="form-inline"> 
    <div class="form-group"> 
     <input type="text" class="form-control" placeholder="Works with" style="width: 100px;"/> 
    </div> 

    ... 
    <div class="form-group"> 
     <div class="input-group" style="width: 220px;"> 
      <span class="input-group-addon">BUT</span> 
      <input type="text" class="form-control" placeholder="not with input-groups" /> 
     </div> 
    </div> 
</form> 
+5

Mam na 3.0.3 i nadal mam ten problem. Dodanie polecenia add-group-addon po formantu formantu tworzy nową linię – Marc

+0

@Marc: Jestem w wersji 3.0.3 i robię to, co chcesz Robię "form.form-inline {display: inline;} form.form -inline .form-group .input-group input + .input-group-addon {width: initial;} ". Nie wiem, czy jest kompatybilny ze wszystkimi przeglądarkami. – Gabriel

+1

@Marc: Zapomniałem powiedzieć, że wejście wymaga szerokości lub szerokości maksimum. – Gabriel

1

Myślę, że może zajść potrzeba oddzielenia formularza w kolumny, aby uzyskać żądany układ liniowy. Przykład (myślę o tym, czego szukasz) znajduje się na stronie Bootstrap here.

spróbuj umieścić

<div class="col-lg-1"></div> 

wokół kontroli, aby zobaczyć, co mam na myśli. Oczywiście musisz pracować w kolumnach po 12, więc trzeba będzie to odpowiednio dostosować.

+0

Możemy używać kolumn do wyrównywania dowolnych formantów formularzy (bez względu na problematyczną "grupę wejściową"). Mimo to BootStrap udostępnia klasę 'form-inline' (która byłaby niepotrzebna, gdyby zachęcano ją do używania kolumn). To [demo] (http://jsfiddle.net/26ZM4/4/) sprawia, że ​​myślę, że powodem istnienia formy śródliniowej jest to, że używanie kolumn nie daje dobrych wyników z punktu widzenia projektowania responsywnego. Wciąż wolałbym klasy niestandardowe od kolumnowego projektu (lub nawet w zamian do "horyzontalnych formularzy" zamiast). – edsioufi

Powiązane problemy