Formularze Bootstrap
Domyślne ustawienia Bootstrapa
Kontrolki formularzy automatycznie otrzymują pewne globalne style za pomocą Bootstrap:
Wszystkie elementy tekstowe <input>
, <textarea>
i
<select>
z klasą .form-control
mają szerokość 100%.
Układy formularzy Bootstrap
Bootstrap udostępnia trzy rodzaje układów formularzy:
- Forma pionowa (domyślna)
- Forma pozioma
- Formularz wbudowany
Standardowe zasady dla wszystkich trzech układów formularzy:
- Zawijaj etykiety i kontrolki formularzy
<div class="form-group">
(potrzebne do uzyskania optymalnych odstępów) - Dodaj klasę do wszystkich elementów
.form-control
tekstowych<input>
,<textarea>
, i<select>
Forma pionowa Bootstrap (domyślna)
Poniższy przykład tworzy formularz pionowy z dwoma polami wejściowymi, jednym polem wyboru i przyciskiem przesyłania:
Przykład
<form action="/action_page.php">
<div class="form-group">
<label for="email">Email address:</label>
<input type="email" class="form-control" id="email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
Formularz inline Bootstrap
W formularzu wbudowanym wszystkie elementy są wbudowane, wyrównane do lewej, a etykiety znajdują się obok.
Uwaga: dotyczy to tylko formularzy w rzutniach o szerokości co najmniej 768px!
Dodatkowa zasada dla formularza inline:
- Dodaj klasę
.form-inline
do<form>
elementu
Poniższy przykład tworzy formularz wbudowany z dwoma polami wejściowymi, jednym polem wyboru i jednym przyciskiem przesyłania:
Przykład
<form class="form-inline" action="/action_page.php">
<div class="form-group">
<label for="email">Email address:</label>
<input type="email" class="form-control" id="email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
Porada: Jeśli nie dodasz etykiety do każdego wejścia, czytniki zawartości ekranu będą miały problemy z formularzami. Możesz ukryć etykiety dla wszystkich urządzeń z wyjątkiem czytników ekranu, używając
.sr-only
klasy:
Przykład
<form class="form-inline" action="/action_page.php">
<div class="form-group">
<label class="sr-only" for="email">Email address:</label>
<input type="email" class="form-control" id="email">
</div>
<div class="form-group">
<label class="sr-only" for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
Pozioma forma Bootstrapa
Forma pozioma oznacza, że etykiety są wyrównane obok pola wejściowego (poziomo) na dużych i średnich ekranach. Na małych ekranach (767px i mniej) przekształci się w formę pionową (etykiety są umieszczane na górze każdego wejścia).
Dodatkowe zasady dla formularza poziomego:
- Dodaj klasę
.form-horizontal
do<form>
elementu - Dodaj klasę
.control-label
do wszystkich<label>
elementów
Wskazówka: Użyj predefiniowanych klas siatki Bootstrap, aby wyrównać etykiety i grupy kontrolek formularza w układzie poziomym.
Poniższy przykład tworzy formularz poziomy z dwoma polami wejściowymi, jednym polem wyboru i jednym przyciskiem przesyłania.
Przykład
<form class="form-horizontal" action="/action_page.php">
<div class="form-group">
<label class="control-label col-sm-2" for="email">Email:</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email" placeholder="Enter email">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pwd">Password:</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="pwd" placeholder="Enter password">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Submit</button>
</div>
</div>
</form>