Dlaczego przyciski i wejścia nie są dobrze dopasowane w Bootstrap?
Próbowałem czegoś prostego, takiego jak:
<input type="text"/><button class="btn">button</button>
Przycisk jest 5px
mniej więcej niż wejście w chrome / firefox.
źródło
Dlaczego przyciski i wejścia nie są dobrze dopasowane w Bootstrap?
Próbowałem czegoś prostego, takiego jak:
<input type="text"/><button class="btn">button</button>
Przycisk jest 5px
mniej więcej niż wejście w chrome / firefox.
W Twitterze Bootstrap 4 dane wejściowe i przyciski można wyrównać za pomocą klas input-group-prepend
i input-group-append
(patrz https://getbootstrap.com/docs/4.0/components/input-group/#button-addons )
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control">
</div>
<div class="input-group mb-3">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control">
</div>
Jak pokazano w odpowiedzi @abimelex, dane wejściowe i przyciski można wyrównać za pomocą .input-group
klas (patrz http://getbootstrap.com/components/#input-groups-buttons )
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
<input type="text" class="form-control">
</div>
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
To rozwiązanie zostało dodane, aby moja odpowiedź była aktualna, ale proszę o głosowanie na odpowiedź udzieloną przez @abimelex .
Bootstrap oferuje .input-append
klasę, która działa jako element otoki i koryguje to dla ciebie:
<div class="input-append">
<input name="search" id="search"/>
<button class="btn">button</button>
</div>
Jak zauważył @OleksiyKhilkevich w swojej odpowiedzi, istnieje drugi sposób na wyrównanie input
i button
użycie .form-horizontal
klasy:
<div class="form-horizontal">
<input name="search" id="search"/>
<button class="btn">button</button>
</div>
Różnica między tymi dwiema klasami polega na tym, .input-append
że umieści button
się na input
elemencie (tak, aby wyglądały, jakby były przymocowane), gdzie .form-horizontal
umieści między nimi przestrzeń.
-- Uwaga --
Aby elementy input
i button
mogły być obok siebie bez odstępów, font-size
ustawiono opcję 0
w .input-append
klasie (usuwa to białe odstępy między inline-block
elementami). Może to mieć niekorzystny wpływ na rozmiary czcionek w input
elemencie, jeśli chcesz zastąpić wartości domyślne za pomocą em
lub %
pomiarów.
.input-append
klasę.margin-bottom: 9px
pasku startowym Twittera mają, ale przyciski nie, więc nie zajmują tej samej przestrzeni pionowej. Ponieważ oba elementy mająmiddle
wyrównanie w pionie, przycisk jest przesunięty z powodu różnicy. Użycie.input-append
opakowania usuwa tę dolną wartość marginesu.możesz użyć właściwości przycisku grupy wejściowej, aby zastosować przycisk bezpośrednio w polu wejściowym.
Bootstrap 3 i 4
Zapoznaj się z dokumentem BS4 Input-Group, aby uzyskać więcej przykładów.
źródło
<div class="form-group input-group-btn">
Tylko heads-up, wydaje się, że istnieje specjalna klasa CSS do tego tzw
form-horizontal
input-append ma inny efekt uboczny, polegający na tym, że rozmiar czcionki spada do zera
źródło
font-size: 0
i nauczyli się czegoś nowego :) Dzięki!Użyj .form-inline = Spowoduje to wyrównanie do lewej etykiet i elementów sterujących bloku w wierszu dla kompaktowego układu
Przykład: http://jsfiddle.net/hSuy4/292/
.form-horizontal = Wyrównaj etykiety do prawej i przesuń je w lewo, aby pojawiały się w tym samym wierszu co formanty, co jest lepsze dla układu formularza z 2 kolumnami.
Przykłady: http://twitter.github.io/bootstrap/base-css.html#forms
źródło
form-inline
działa dla Bootstrap 3. Dzięki.Próbowałem przede wszystkim i skończyłem z kilkoma zmianami, którymi chciałbym się podzielić. Oto kod, który działa dla mnie (znajdź załączony zrzut ekranu):
Jeśli chcesz, aby działało, po prostu użyj poniższego kodu w swoim edytorze:
Mam nadzieję że to pomoże.
źródło
style="width:0;"
?<div class="col-md-4">
No need forwidth: 0
Walczyłem również z tym samym problemem. Klasy bootstrap, których używam, nie działają dla mnie. Wymyśliłem obejście, jak poniżej:
Zasadniczo przesłoniłem właściwość display klasy „form-control” i użyłem innych właściwości stylu do korekcji rozmiaru i położenia.
Oto wynik:
źródło
Bootstrap 4:
https://getbootstrap.com/docs/4.0/components/input-group/
źródło
źródło
Wypróbowałem wszystkie powyższe kody i żaden z nich nie naprawił moich problemów. Oto, co zadziałało dla mnie. Użyłem addon-group-addon.
źródło
Nie ma bezpośredniego związku, chyba że masz podobny kod, ale zauważyłem dziwne zachowanie w stosunku do form-inline, bootstrap 3.3.7
Nie użyłem do tego wiersza i komórek, ponieważ jest to projekt pulpitu, jeśli znacznik otwierający znajdował się pod tabelą (w tym przypadku):
Elementy formularza będą się układać.
Przełącznik i jest prawidłowo ustawiony.
Safari 10.0.2 i najnowszy Chrome nie wprowadziły żadnych różnic. Może mój układ był zły, ale nie jest zbyt wybaczający.
źródło
Weź zmiennoprzecinkowe wejście w lewo. Następnie weź przycisk i ustaw go w prawo. Możesz wyczyścić klasę, jeśli pokonujesz więcej niż jedną odległość.
źródło
Użyj tego, aby przesunąć div w górę lub w dół w swoim rzędzie. Działa dla mnie cuda.
źródło