Formuláre
Príklady a pokyny na použitie pre štýly ovládania formulárov, možnosti rozloženia a vlastné komponenty na vytváranie širokej škály formulárov.
Prehľad
Ovládacie prvky formulára Bootstrap rozširujú naše štýly formulárov Rebooted o triedy. Pomocou týchto tried si môžete aktivovať prispôsobené zobrazenia pre konzistentnejšie vykresľovanie vo všetkých prehliadačoch a zariadeniach.
Uistite sa, že používate vhodný type
atribút na všetkých vstupoch (napr. email
pre e-mailovú adresu alebo number
pre číselné informácie), aby ste využili výhody novších ovládacích prvkov vstupu, ako je overenie e-mailu, výber čísla a ďalšie.
Tu je rýchly príklad na demonštráciu štýlov formulárov Bootstrapu. Pokračujte v čítaní dokumentácie o požadovaných triedach, rozložení formulárov a ďalších.
<form>
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1">
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1">
<label class="form-check-label" for="exampleCheck1">Check me out</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
Ovládacie prvky formulára
Ovládacie prvky textového formulára – napríklad <input>
s, <select>
s a <textarea>
s – majú štýl podľa .form-control
triedy. Zahrnuté sú štýly pre celkový vzhľad, stav zaostrenia, veľkosť a ďalšie.
Nezabudnite preskúmať naše vlastné formuláre na ďalšie štýly <select>
.
<form>
<div class="form-group">
<label for="exampleFormControlInput1">Email address</label>
<input type="email" class="form-control" id="exampleFormControlInput1" placeholder="[email protected]">
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Example select</label>
<select class="form-control" id="exampleFormControlSelect1">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<div class="form-group">
<label for="exampleFormControlSelect2">Example multiple select</label>
<select multiple class="form-control" id="exampleFormControlSelect2">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<div class="form-group">
<label for="exampleFormControlTextarea1">Example textarea</label>
<textarea class="form-control" id="exampleFormControlTextarea1" rows="3"></textarea>
</div>
</form>
Pre vstupy súborov vymeňte .form-control
za .form-control-file
.
<form>
<div class="form-group">
<label for="exampleFormControlFile1">Example file input</label>
<input type="file" class="form-control-file" id="exampleFormControlFile1">
</div>
</form>
Dimenzovanie
Nastavte výšky pomocou tried ako .form-control-lg
a .form-control-sm
.
<input class="form-control form-control-lg" type="text" placeholder=".form-control-lg">
<input class="form-control" type="text" placeholder="Default input">
<input class="form-control form-control-sm" type="text" placeholder=".form-control-sm">
<select class="form-control form-control-lg">
<option>Large select</option>
</select>
<select class="form-control">
<option>Default select</option>
</select>
<select class="form-control form-control-sm">
<option>Small select</option>
</select>
Iba na čítanie
Pridajte readonly
booleovský atribút na vstup, aby ste zabránili úprave hodnoty vstupu. Vstupy len na čítanie sa zdajú svetlejšie (rovnako ako zakázané vstupy), ale zachovajú si štandardný kurzor.
<input class="form-control" type="text" placeholder="Readonly input here..." readonly>
Čistý text len na čítanie
Ak chcete mať <input readonly>
prvky vo formulári v štýle obyčajného textu, použite .form-control-plaintext
triedu na odstránenie predvoleného štýlu poľa formulára a zachovajte správny okraj a výplň.
<form>
<div class="form-group row">
<label for="staticEmail" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="text" readonly class="form-control-plaintext" id="staticEmail" value="[email protected]">
</div>
</div>
<div class="form-group row">
<label for="inputPassword" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword">
</div>
</div>
</form>
<form class="form-inline">
<div class="form-group mb-2">
<label for="staticEmail2" class="sr-only">Email</label>
<input type="text" readonly class="form-control-plaintext" id="staticEmail2" value="[email protected]">
</div>
<div class="form-group mx-sm-3 mb-2">
<label for="inputPassword2" class="sr-only">Password</label>
<input type="password" class="form-control" id="inputPassword2" placeholder="Password">
</div>
<button type="submit" class="btn btn-primary mb-2">Confirm identity</button>
</form>
Rozsah vstupov
Nastavte horizontálne posúvateľné vstupy rozsahu pomocou .form-control-range
.
<form>
<div class="form-group">
<label for="formControlRange">Example Range input</label>
<input type="range" class="form-control-range" id="formControlRange">
</div>
</form>
Zaškrtávacie políčka a rádiá
Predvolené začiarkavacie políčka a rádiá sú vylepšené pomocou .form-check
jedinej triedy pre oba typy vstupu, ktorá zlepšuje rozloženie a správanie ich prvkov HTML . Začiarkavacie políčka slúžia na výber jednej alebo viacerých možností v zozname, zatiaľ čo rádiá sú na výber jednej možnosti z mnohých.
Zakázané začiarkavacie políčka a rádiá sú podporované. Atribút disabled
použije svetlejšiu farbu, ktorá pomôže určiť stav vstupu.
Začiarkavacie políčka a prepínače podporujú overenie formulárov založené na HTML a poskytujú stručné a prístupné označenia. Ako také sú naše <input>
s a <label>
s súrodenecké prvky na rozdiel od prvkov v <input>
rámci <label>
. Toto je o niečo podrobnejšie, pretože musíte zadať atribúty, aby ste id
spojili a .for
<input>
<label>
Predvolené (zoskupené)
V predvolenom nastavení bude ľubovoľný počet začiarkavacích políčok a rádií, ktoré sú bezprostrednými súrodencami, vertikálne usporiadaný a primerane rozmiestnený s .form-check
.
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
<label class="form-check-label" for="defaultCheck1">
Default checkbox
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck2" disabled>
<label class="form-check-label" for="defaultCheck2">
Disabled checkbox
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
<label class="form-check-label" for="exampleRadios1">
Default radio
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
<label class="form-check-label" for="exampleRadios2">
Second default radio
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios3" value="option3" disabled>
<label class="form-check-label" for="exampleRadios3">
Disabled radio
</label>
</div>
V rade
Zoskupte začiarkavacie políčka alebo rádiá v rovnakom vodorovnom riadku pridaním .form-check-inline
k ľubovoľnému .form-check
.
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1">
<label class="form-check-label" for="inlineCheckbox1">1</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox2" value="option2">
<label class="form-check-label" for="inlineCheckbox2">2</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox3" value="option3" disabled>
<label class="form-check-label" for="inlineCheckbox3">3 (disabled)</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
<label class="form-check-label" for="inlineRadio1">1</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2">
<label class="form-check-label" for="inlineRadio2">2</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3" disabled>
<label class="form-check-label" for="inlineRadio3">3 (disabled)</label>
</div>
Bez štítkov
Pridať .position-static
k vstupom .form-check
, ktoré neobsahujú žiadny text menovky. Nezabudnite poskytnúť určitú formu prístupného názvu pre asistenčné technológie (napríklad pomocou aria-label
).
<div class="form-check">
<input class="form-check-input position-static" type="checkbox" id="blankCheckbox" value="option1" aria-label="...">
</div>
<div class="form-check">
<input class="form-check-input position-static" type="radio" name="blankRadio" id="blankRadio1" value="option1" aria-label="...">
</div>
Rozloženie
Keďže Bootstrap platí display: block
takmer width: 100%
pre všetky naše ovládacie prvky formulárov, formuláre sa štandardne ukladajú vertikálne. Na zmenu tohto rozloženia na základe jednotlivých formulárov možno použiť ďalšie triedy.
Vytvárajte skupiny
Trieda .form-group
je najjednoduchší spôsob, ako pridať určitú štruktúru do formulárov. Poskytuje flexibilnú triedu, ktorá podporuje správne zoskupovanie štítkov, ovládacích prvkov, voliteľného pomocného textu a správ na overenie formulárov. V predvolenom nastavení platí iba margin-bottom
, ale podľa .form-inline
potreby preberá ďalšie štýly. Použite ho s <fieldset>
s, <div>
s alebo takmer akýmkoľvek iným prvkom.
<form>
<div class="form-group">
<label for="formGroupExampleInput">Example label</label>
<input type="text" class="form-control" id="formGroupExampleInput" placeholder="Example input placeholder">
</div>
<div class="form-group">
<label for="formGroupExampleInput2">Another label</label>
<input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Another input placeholder">
</div>
</form>
Mriežka formulára
Zložitejšie formuláre je možné zostaviť pomocou našich tried mriežky. Použite ich pre rozloženia formulárov, ktoré vyžadujú viacero stĺpcov, rôzne šírky a ďalšie možnosti zarovnania.
<form>
<div class="row">
<div class="col">
<input type="text" class="form-control" placeholder="First name">
</div>
<div class="col">
<input type="text" class="form-control" placeholder="Last name">
</div>
</div>
</form>
Riadok formulára
Môžete tiež zameniť .row
za .form-row
, variáciu nášho štandardného riadku mriežky, ktorý prepíše predvolené odkvapy stĺpcov pre užšie a kompaktnejšie rozloženia.
<form>
<div class="form-row">
<div class="col">
<input type="text" class="form-control" placeholder="First name">
</div>
<div class="col">
<input type="text" class="form-control" placeholder="Last name">
</div>
</div>
</form>
Pomocou mriežkového systému je možné vytvárať aj zložitejšie rozloženia.
<form>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputEmail4">Email</label>
<input type="email" class="form-control" id="inputEmail4">
</div>
<div class="form-group col-md-6">
<label for="inputPassword4">Password</label>
<input type="password" class="form-control" id="inputPassword4">
</div>
</div>
<div class="form-group">
<label for="inputAddress">Address</label>
<input type="text" class="form-control" id="inputAddress" placeholder="1234 Main St">
</div>
<div class="form-group">
<label for="inputAddress2">Address 2</label>
<input type="text" class="form-control" id="inputAddress2" placeholder="Apartment, studio, or floor">
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputCity">City</label>
<input type="text" class="form-control" id="inputCity">
</div>
<div class="form-group col-md-4">
<label for="inputState">State</label>
<select id="inputState" class="form-control">
<option selected>Choose...</option>
<option>...</option>
</select>
</div>
<div class="form-group col-md-2">
<label for="inputZip">Zip</label>
<input type="text" class="form-control" id="inputZip">
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="gridCheck">
<label class="form-check-label" for="gridCheck">
Check me out
</label>
</div>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
Horizontálny tvar
Vytvorte vodorovné formuláre s mriežkou pridaním .row
triedy do skupín formulárov a použitím .col-*-*
tried na určenie šírky štítkov a ovládacích prvkov. Nezabudnite pridať .col-form-label
aj do svojich <label>
s, aby boli vertikálne vycentrované s príslušnými ovládacími prvkami formulára.
Niekedy možno budete musieť použiť pomocné nástroje pre okraje alebo výplň, aby ste vytvorili dokonalé zarovnanie, ktoré potrebujete. Odstránili sme napríklad padding-top
štítok naskladaných rádiových vstupov, aby sme lepšie zarovnali základňu textu.
<form>
<div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="inputEmail3">
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword3">
</div>
</div>
<fieldset class="form-group row">
<legend class="col-form-label col-sm-2 float-sm-left pt-0">Radios</legend>
<div class="col-sm-10">
<div class="form-check">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios1" value="option1" checked>
<label class="form-check-label" for="gridRadios1">
First radio
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios2" value="option2">
<label class="form-check-label" for="gridRadios2">
Second radio
</label>
</div>
<div class="form-check disabled">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios3" value="option3" disabled>
<label class="form-check-label" for="gridRadios3">
Third disabled radio
</label>
</div>
</div>
</fieldset>
<div class="form-group row">
<div class="col-sm-10 offset-sm-2">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="gridCheck1">
<label class="form-check-label" for="gridCheck1">
Example checkbox
</label>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Sign in</button>
</div>
</div>
</form>
Horizontálna veľkosť štítku formulára
Uistite sa, že používate .col-form-label-sm
alebo .col-form-label-lg
na vaše <label>
s alebo <legend>
s, aby ste správne dodržiavali veľkosť .form-control-lg
a .form-control-sm
.
<form>
<div class="form-group row">
<label for="colFormLabelSm" class="col-sm-2 col-form-label col-form-label-sm">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control form-control-sm" id="colFormLabelSm" placeholder="col-form-label-sm">
</div>
</div>
<div class="form-group row">
<label for="colFormLabel" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="colFormLabel" placeholder="col-form-label">
</div>
</div>
<div class="form-group row">
<label for="colFormLabelLg" class="col-sm-2 col-form-label col-form-label-lg">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control form-control-lg" id="colFormLabelLg" placeholder="col-form-label-lg">
</div>
</div>
</form>
Dimenzovanie stĺpcov
Ako je uvedené v predchádzajúcich príkladoch, náš mriežkový systém vám umožňuje umiestniť ľubovoľný počet .col
s v rámci a .row
alebo .form-row
. Rovnomerne rozdelia dostupnú šírku medzi seba. Môžete si tiež vybrať podmnožinu svojich stĺpcov, aby zaberali viac alebo menej miesta, zatiaľ čo zvyšné .col
s rovnomerne rozdelia zvyšok so špecifickými triedami stĺpcov, ako je .col-7
.
<form>
<div class="form-row">
<div class="col-7">
<input type="text" class="form-control" placeholder="City">
</div>
<div class="col">
<input type="text" class="form-control" placeholder="State">
</div>
<div class="col">
<input type="text" class="form-control" placeholder="Zip">
</div>
</div>
</form>
Automatické nastavenie veľkosti
V nižšie uvedenom príklade sa používa nástroj flexbox na vertikálne vycentrovanie obsahu a zmeny .col
tak .col-auto
, aby vaše stĺpce zaberali len toľko miesta, koľko je potrebné. Inak povedané, veľkosť stĺpca závisí od obsahu.
<form>
<div class="form-row align-items-center">
<div class="col-auto">
<label class="sr-only" for="inlineFormInput">Name</label>
<input type="text" class="form-control mb-2" id="inlineFormInput" placeholder="Jane Doe">
</div>
<div class="col-auto">
<label class="sr-only" for="inlineFormInputGroup">Username</label>
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text">@</div>
</div>
<input type="text" class="form-control" id="inlineFormInputGroup" placeholder="Username">
</div>
</div>
<div class="col-auto">
<div class="form-check mb-2">
<input class="form-check-input" type="checkbox" id="autoSizingCheck">
<label class="form-check-label" for="autoSizingCheck">
Remember me
</label>
</div>
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary mb-2">Submit</button>
</div>
</div>
</form>
Potom to môžete znova zmiešať s triedami stĺpcov špecifických pre veľkosť.
<form>
<div class="form-row align-items-center">
<div class="col-sm-3 my-1">
<label class="sr-only" for="inlineFormInputName">Name</label>
<input type="text" class="form-control" id="inlineFormInputName" placeholder="Jane Doe">
</div>
<div class="col-sm-3 my-1">
<label class="sr-only" for="inlineFormInputGroupUsername">Username</label>
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">@</div>
</div>
<input type="text" class="form-control" id="inlineFormInputGroupUsername" placeholder="Username">
</div>
</div>
<div class="col-auto my-1">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="autoSizingCheck2">
<label class="form-check-label" for="autoSizingCheck2">
Remember me
</label>
</div>
</div>
<div class="col-auto my-1">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
A samozrejme sú podporované vlastné ovládacie prvky formulárov .
<form>
<div class="form-row align-items-center">
<div class="col-auto my-1">
<label class="mr-sm-2 sr-only" for="inlineFormCustomSelect">Preference</label>
<select class="custom-select mr-sm-2" id="inlineFormCustomSelect">
<option selected>Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
<div class="col-auto my-1">
<div class="custom-control custom-checkbox mr-sm-2">
<input type="checkbox" class="custom-control-input" id="customControlAutosizing">
<label class="custom-control-label" for="customControlAutosizing">Remember my preference</label>
</div>
</div>
<div class="col-auto my-1">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
Inline formuláre
Použite .form-inline
triedu na zobrazenie série štítkov, ovládacích prvkov formulárov a tlačidiel v jednom vodorovnom riadku. Ovládacie prvky formulárov v rámci vložených formulárov sa mierne líšia od ich predvolených stavov.
- Ovládacie prvky sú
display: flex
, ktoré zbaľujú akýkoľvek prázdny priestor HTML a umožňujú vám poskytovať kontrolu zarovnania pomocou nástrojov pre medzery a flexbox . - Ovládacie prvky a vstupné skupiny dostanú
width: auto
na prepísanie predvoleného nastavenia Bootstrapwidth: 100%
. - Ovládacie prvky sa zobrazujú vložené iba vo výrezoch, ktoré sú široké aspoň 576 pixelov , aby sa zohľadnili úzke výrezy na mobilných zariadeniach.
Možno budete musieť manuálne upraviť šírku a zarovnanie jednotlivých ovládacích prvkov formulára pomocou nástrojov na nastavenie medzier (ako je uvedené nižšie). Nakoniec nezabudnite vždy zahrnúť ku <label>
každému ovládaciemu prvku formulára, aj keď ho potrebujete skryť pred návštevníkmi, ktorí nepoužívajú čítačku obrazovky, pomocou .sr-only
.
<form class="form-inline">
<label class="sr-only" for="inlineFormInputName2">Name</label>
<input type="text" class="form-control mb-2 mr-sm-2" id="inlineFormInputName2" placeholder="Jane Doe">
<label class="sr-only" for="inlineFormInputGroupUsername2">Username</label>
<div class="input-group mb-2 mr-sm-2">
<div class="input-group-prepend">
<div class="input-group-text">@</div>
</div>
<input type="text" class="form-control" id="inlineFormInputGroupUsername2" placeholder="Username">
</div>
<div class="form-check mb-2 mr-sm-2">
<input class="form-check-input" type="checkbox" id="inlineFormCheck">
<label class="form-check-label" for="inlineFormCheck">
Remember me
</label>
</div>
<button type="submit" class="btn btn-primary mb-2">Submit</button>
</form>
Podporované sú aj ovládacie prvky a výbery vlastných formulárov.
<form class="form-inline">
<label class="my-1 mr-2" for="inlineFormCustomSelectPref">Preference</label>
<select class="custom-select my-1 mr-sm-2" id="inlineFormCustomSelectPref">
<option selected>Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<div class="custom-control custom-checkbox my-1 mr-sm-2">
<input type="checkbox" class="custom-control-input" id="customControlInline">
<label class="custom-control-label" for="customControlInline">Remember my preference</label>
</div>
<button type="submit" class="btn btn-primary my-1">Submit</button>
</form>
Alternatívy k skrytým štítkom
Pomocné technológie, ako sú čítačky obrazovky, budú mať problémy s formulármi, ak nezahrniete štítok pre každý vstup. Pre tieto vložené formuláre môžete štítky skryť pomocou .sr-only
triedy. Existujú ďalšie alternatívne spôsoby poskytovania označenia pre asistenčné technológie, ako napríklad atribút aria-label
, aria-labelledby
alebo . title
Ak nie je prítomný žiadny z nich, asistenčné technológie sa môžu uchýliť k použitiu placeholder
atribútu, ak je prítomný, ale všimnite si, že použitie placeholder
ako náhrady za iné metódy označovania sa neodporúča.
Pomocný text
Text pomoci na úrovni bloku vo formulároch je možné vytvoriť pomocou .form-text
(predtým známeho ako .help-block
v3). Inline pomocný text môže byť flexibilne implementovaný pomocou akéhokoľvek vloženého HTML elementu a pomocných tried ako .text-muted
.
Priradenie pomocného textu k ovládacím prvkom formulára
Text pomocníka by mal byť explicitne spojený s ovládacím prvkom formulára, na ktorý sa vzťahuje pomocou aria-describedby
atribútu. Tým sa zabezpečí, že asistenčné technológie – ako napríklad čítačky obrazovky – oznámia tento text pomocníka, keď používateľ zaostrí alebo vstúpi do ovládacieho prvku.
Text pomocníka pod vstupmi je možné upraviť pomocou .form-text
. Táto trieda obsahuje display: block
a pridáva určitý horný okraj pre ľahké rozstupy od vyššie uvedených vstupov.
<label for="inputPassword5">Password</label>
<input type="password" id="inputPassword5" class="form-control" aria-describedby="passwordHelpBlock">
<small id="passwordHelpBlock" class="form-text text-muted">
Your password must be 8-20 characters long, contain letters and numbers, and must not contain spaces, special characters, or emoji.
</small>
Vložený text môže používať akýkoľvek typický vložený prvok HTML (či už je to <small>
, <span>
, alebo niečo iné) s ničím iným ako pomocnou triedou.
<form class="form-inline">
<div class="form-group">
<label for="inputPassword6">Password</label>
<input type="password" id="inputPassword6" class="form-control mx-sm-3" aria-describedby="passwordHelpInline">
<small id="passwordHelpInline" class="text-muted">
Must be 8-20 characters long.
</small>
</div>
</form>
Zakázané formuláre
Pridajte disabled
booleovský atribút na vstup, aby ste zabránili interakciám používateľa a aby sa javil ako ľahší.
<input class="form-control" id="disabledInput" type="text" placeholder="Disabled input here..." disabled>
Ak chcete zakázať všetky ovládacie prvky, pridajte disabled
atribút do.<fieldset>
<form>
<fieldset disabled>
<legend>Disabled fieldset example</legend>
<div class="form-group">
<label for="disabledTextInput">Disabled input</label>
<input type="text" id="disabledTextInput" class="form-control" placeholder="Disabled input">
</div>
<div class="form-group">
<label for="disabledSelect">Disabled select menu</label>
<select id="disabledSelect" class="form-control">
<option>Disabled select</option>
</select>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="disabledFieldsetCheck" disabled>
<label class="form-check-label" for="disabledFieldsetCheck">
Can't check this
</label>
</div>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</fieldset>
</form>
Upozornenie s kotvami
Prehliadače považujú všetky ovládacie prvky natívneho formulára ( <input>
, <select>
, a <button>
prvky) vo vnútri <fieldset disabled>
za deaktivované, čím bránia interakciám s klávesnicou a myšou.
Ak však váš formulár obsahuje aj vlastné prvky podobné tlačidlám, ako napríklad <a ... class="btn btn-*">
, budú mať iba štýl pointer-events: none
. Ako je uvedené v časti o zakázanom stave pre tlačidlá (a konkrétne v podsekcii pre prvky kotvy), táto vlastnosť CSS ešte nie je štandardizovaná a nie je plne podporovaná v programe Internet Explorer 10. Ovládacie prvky založené na kotve budú tiež zaostriteľné a ovládateľné pomocou klávesnice. Tieto ovládacie prvky musíte manuálne upraviť pridaním tabindex="-1"
, aby ste im zabránili v zaostrovaní a aria-disabled="disabled"
signalizovali ich stav asistenčným technológiám.
Kompatibilita medzi prehliadačmi
Zatiaľ čo Bootstrap použije tieto štýly vo všetkých prehliadačoch, Internet Explorer 11 a staršie verzie plne nepodporujú disabled
atribút na <fieldset>
. Na zakázanie sady polí v týchto prehliadačoch použite vlastný JavaScript.
Validácia
Poskytnite svojim používateľom hodnotnú spätnú väzbu, ktorú možno vykonať, pomocou overenia formulára HTML5 – dostupného vo všetkých našich podporovaných prehliadačoch . Vyberte si z predvolenej spätnej väzby na overenie prehliadača alebo implementujte vlastné správy pomocou našich vstavaných tried a spúšťacieho JavaScriptu.
Ako to funguje
Tu je návod, ako funguje overenie formulára s Bootstrap:
- Overenie formulára HTML sa používa prostredníctvom dvoch pseudotried CSS
:invalid
a:valid
. Vzťahuje sa na prvky<input>
,<select>
, a<textarea>
. - Bootstrap rozsahy štýlov
:invalid
a:valid
na nadradenú.was-validated
triedu, zvyčajne aplikované na<form>
. V opačnom prípade sa akékoľvek povinné pole bez hodnoty pri načítaní stránky zobrazí ako neplatné. Týmto spôsobom si môžete vybrať, kedy ich chcete aktivovať (zvyčajne po pokuse o odoslanie formulára). - Ak chcete obnoviť vzhľad formulára (napríklad v prípade dynamického odosielania formulárov pomocou AJAX), po odoslaní znova odstráňte
.was-validated
triedu z formulára.<form>
- Namiesto pseudotried na overenie na strane servera sa môžu použiť triedy
.is-invalid
a . Nevyžadujú rodičovskú triedu..is-valid
.was-validated
- Kvôli obmedzeniam v spôsobe fungovania CSS nemôžeme (v súčasnosti) použiť štýly na
<label>
prvok, ktorý sa nachádza pred ovládacím prvkom formulára v DOM bez pomoci vlastného JavaScriptu. - Všetky moderné prehliadače podporujú rozhranie API na overenie obmedzení , sériu metód JavaScriptu na overenie ovládacích prvkov formulárov.
- Správy spätnej väzby môžu využívať predvolené nastavenia prehliadača (odlišné pre každý prehliadač a nestylovateľné cez CSS) alebo naše vlastné štýly spätnej väzby s dodatočným HTML a CSS.
- Môžete poskytnúť vlastné správy o platnosti
setCustomValidity
v jazyku JavaScript.
Vzhľadom na to zvážte nasledujúce ukážky našich vlastných štýlov overovania formulárov, voliteľných tried na strane servera a predvolených nastavení prehliadača.
Vlastné štýly
Pre vlastné správy na overenie formulára Bootstrap budete musieť pridať novalidate
booleovský atribút do súboru <form>
. Toto zakáže predvolené popisy spätnej väzby prehliadača, ale stále poskytuje prístup k rozhraniam API na overenie formulárov v jazyku JavaScript. Skúste odoslať formulár nižšie; náš JavaScript zachytí tlačidlo Odoslať a odošle vám spätnú väzbu. Pri pokuse o odoslanie uvidíte štýly :invalid
a použité na ovládacie prvky formulára.:valid
Vlastné štýly spätnej väzby používajú vlastné farby, orámovanie, štýly zamerania a ikony pozadia na lepšiu komunikáciu spätnej väzby. Ikony pozadia pre <select>
s sú dostupné len s .custom-select
, a nie s .form-control
.
<form class="needs-validation" novalidate>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationCustom01">First name</label>
<input type="text" class="form-control" id="validationCustom01" value="Mark" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
<div class="col-md-6 mb-3">
<label for="validationCustom02">Last name</label>
<input type="text" class="form-control" id="validationCustom02" value="Otto" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationCustom03">City</label>
<input type="text" class="form-control" id="validationCustom03" required>
<div class="invalid-feedback">
Please provide a valid city.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationCustom04">State</label>
<select class="custom-select" id="validationCustom04" required>
<option selected disabled value="">Choose...</option>
<option>...</option>
</select>
<div class="invalid-feedback">
Please select a valid state.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationCustom05">Zip</label>
<input type="text" class="form-control" id="validationCustom05" required>
<div class="invalid-feedback">
Please provide a valid zip.
</div>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="invalidCheck" required>
<label class="form-check-label" for="invalidCheck">
Agree to terms and conditions
</label>
<div class="invalid-feedback">
You must agree before submitting.
</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit form</button>
</form>
<script>
// Example starter JavaScript for disabling form submissions if there are invalid fields
(function() {
'use strict';
window.addEventListener('load', function() {
// Fetch all the forms we want to apply custom Bootstrap validation styles to
var forms = document.getElementsByClassName('needs-validation');
// Loop over them and prevent submission
var validation = Array.prototype.filter.call(forms, function(form) {
form.addEventListener('submit', function(event) {
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
});
}, false);
})();
</script>
Predvolené nastavenia prehliadača
Nemáte záujem o vlastné správy so spätnou väzbou na overenie alebo písanie JavaScriptu na zmenu správania formulárov? Všetko v poriadku, môžete použiť predvolené nastavenia prehliadača. Skúste odoslať formulár nižšie. V závislosti od vášho prehliadača a operačného systému uvidíte trochu iný štýl spätnej väzby.
Aj keď tieto štýly spätnej väzby nemožno upravovať pomocou CSS, text spätnej väzby si môžete prispôsobiť pomocou JavaScriptu.
<form>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationDefault01">First name</label>
<input type="text" class="form-control" id="validationDefault01" value="Mark" required>
</div>
<div class="col-md-6 mb-3">
<label for="validationDefault02">Last name</label>
<input type="text" class="form-control" id="validationDefault02" value="Otto" required>
</div>
</div>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationDefault03">City</label>
<input type="text" class="form-control" id="validationDefault03" required>
</div>
<div class="col-md-3 mb-3">
<label for="validationDefault04">State</label>
<select class="custom-select" id="validationDefault04" required>
<option selected disabled value="">Choose...</option>
<option>...</option>
</select>
</div>
<div class="col-md-3 mb-3">
<label for="validationDefault05">Zip</label>
<input type="text" class="form-control" id="validationDefault05" required>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="invalidCheck2" required>
<label class="form-check-label" for="invalidCheck2">
Agree to terms and conditions
</label>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit form</button>
</form>
Strana servera
Odporúčame použiť overenie na strane klienta, ale v prípade, že požadujete overenie na strane servera, môžete označiť neplatné a platné polia formulára pomocou .is-invalid
a .is-valid
. Všimnite si, že .invalid-feedback
je to podporované aj týmito triedami.
V prípade neplatných polí skontrolujte, či je neplatná spätná väzba/chybová správa priradená k príslušnému poľu formulára pomocou aria-describedby
. Tento atribút umožňuje id
odkazovať na viac ako jeden v prípade, že pole už ukazuje na ďalší text formulára.
<form>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationServer01">First name</label>
<input type="text" class="form-control is-valid" id="validationServer01" value="Mark" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
<div class="col-md-6 mb-3">
<label for="validationServer02">Last name</label>
<input type="text" class="form-control is-valid" id="validationServer02" value="Otto" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationServer03">City</label>
<input type="text" class="form-control is-invalid" id="validationServer03" aria-describedby="validationServer03Feedback" required>
<div id="validationServer03Feedback" class="invalid-feedback">
Please provide a valid city.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationServer04">State</label>
<select class="custom-select is-invalid" id="validationServer04" aria-describedby="validationServer04Feedback" required>
<option selected disabled value="">Choose...</option>
<option>...</option>
</select>
<div id="validationServer04Feedback" class="invalid-feedback">
Please select a valid state.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationServer05">Zip</label>
<input type="text" class="form-control is-invalid" id="validationServer05" aria-describedby="validationServer05Feedback" required>
<div id="validationServer05Feedback" class="invalid-feedback">
Please provide a valid zip.
</div>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input is-invalid" type="checkbox" value="" id="invalidCheck3" aria-describedby="invalidCheck3Feedback" required>
<label class="form-check-label" for="invalidCheck3">
Agree to terms and conditions
</label>
<div id="invalidCheck3Feedback" class="invalid-feedback">
You must agree before submitting.
</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit form</button>
</form>
Podporované prvky
Štýly overenia sú dostupné pre nasledujúce ovládacie prvky formulárov a komponenty:
<input>
s a<textarea>
s.form-control
<select>
s.form-control
alebo.custom-select
.form-check
s.custom-checkbox
s a.custom-radio
s.custom-file
<form class="was-validated">
<div class="mb-3">
<label for="validationTextarea">Textarea</label>
<textarea class="form-control is-invalid" id="validationTextarea" placeholder="Required example textarea" required></textarea>
<div class="invalid-feedback">
Please enter a message in the textarea.
</div>
</div>
<div class="custom-control custom-checkbox mb-3">
<input type="checkbox" class="custom-control-input" id="customControlValidation1" required>
<label class="custom-control-label" for="customControlValidation1">Check this custom checkbox</label>
<div class="invalid-feedback">Example invalid feedback text</div>
</div>
<div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" id="customControlValidation2" name="radio-stacked" required>
<label class="custom-control-label" for="customControlValidation2">Toggle this custom radio</label>
</div>
<div class="custom-control custom-radio mb-3">
<input type="radio" class="custom-control-input" id="customControlValidation3" name="radio-stacked" required>
<label class="custom-control-label" for="customControlValidation3">Or toggle this other custom radio</label>
<div class="invalid-feedback">More example invalid feedback text</div>
</div>
<div class="mb-3">
<select class="custom-select" required>
<option value="">Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<div class="invalid-feedback">Example invalid custom select feedback</div>
</div>
<div class="custom-file mb-3">
<input type="file" class="custom-file-input" id="validatedCustomFile" required>
<label class="custom-file-label" for="validatedCustomFile">Choose file...</label>
<div class="invalid-feedback">Example invalid custom file feedback</div>
</div>
<div class="mb-3">
<div class="input-group is-invalid">
<div class="input-group-prepend">
<span class="input-group-text" id="validatedInputGroupPrepend">@</span>
</div>
<input type="text" class="form-control is-invalid" aria-describedby="validatedInputGroupPrepend" required>
</div>
<div class="invalid-feedback">
Example invalid input group feedback
</div>
</div>
<div class="mb-3">
<div class="input-group is-invalid">
<div class="input-group-prepend">
<label class="input-group-text" for="validatedInputGroupSelect">Options</label>
</div>
<select class="custom-select" id="validatedInputGroupSelect" required>
<option value="">Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
<div class="invalid-feedback">
Example invalid input group feedback
</div>
</div>
<div class="input-group is-invalid">
<div class="custom-file">
<input type="file" class="custom-file-input" id="validatedInputGroupCustomFile" required>
<label class="custom-file-label" for="validatedInputGroupCustomFile">Choose file...</label>
</div>
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
</div>
<div class="invalid-feedback">
Example invalid input group feedback
</div>
</form>
Popisy
Ak to rozloženie formulára umožňuje, môžete triedy zameniť .{valid|invalid}-feedback
za .{valid|invalid}-tooltip
triedy, aby sa zobrazila spätná väzba na overenie v štýlovom popise. Uistite sa, že máte na position: relative
ňom rodiča na umiestnenie popisku. V nižšie uvedenom príklade to už naše triedy stĺpcov majú, ale váš projekt môže vyžadovať alternatívne nastavenie.
<form class="needs-validation" novalidate>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationTooltip01">First name</label>
<input type="text" class="form-control" id="validationTooltip01" value="Mark" required>
<div class="valid-tooltip">
Looks good!
</div>
</div>
<div class="col-md-6 mb-3">
<label for="validationTooltip02">Last name</label>
<input type="text" class="form-control" id="validationTooltip02" value="Otto" required>
<div class="valid-tooltip">
Looks good!
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-6 mb-3">
<label for="validationTooltip03">City</label>
<input type="text" class="form-control" id="validationTooltip03" required>
<div class="invalid-tooltip">
Please provide a valid city.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationTooltip04">State</label>
<select class="custom-select" id="validationTooltip04" required>
<option selected disabled value="">Choose...</option>
<option>...</option>
</select>
<div class="invalid-tooltip">
Please select a valid state.
</div>
</div>
<div class="col-md-3 mb-3">
<label for="validationTooltip05">Zip</label>
<input type="text" class="form-control" id="validationTooltip05" required>
<div class="invalid-tooltip">
Please provide a valid zip.
</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit form</button>
</form>
Prispôsobovanie
Stavy overenia je možné prispôsobiť cez Sass s $form-validation-states
mapou. Táto mapa Sass, ktorá sa nachádza v našom _variables.scss
súbore, sa prepne do slučky, aby sa vygenerovali predvolené valid
/ invalid
overovacie stavy. Súčasťou je vnorená mapa na prispôsobenie farby a ikony každého štátu. Prehliadače síce nepodporujú žiadne iné stavy, no tí, ktorí používajú vlastné štýly, môžu jednoducho pridať komplexnejšiu spätnú väzbu k formulárom.
Upozorňujeme, že neodporúčame upravovať tieto hodnoty bez toho, aby ste upravili aj form-validation-state
mix.
// Sass map from `_variables.scss`
// Override this and recompile your Sass to generate different states
$form-validation-states: map-merge(
(
"valid": (
"color": $form-feedback-valid-color,
"icon": $form-feedback-icon-valid
),
"invalid": (
"color": $form-feedback-invalid-color,
"icon": $form-feedback-icon-invalid
)
),
$form-validation-states
);
// Loop from `_forms.scss`
// Any modifications to the above Sass map will be reflected in your compiled
// CSS via this loop.
@each $state, $data in $form-validation-states {
@include form-validation-state($state, map-get($data, color), map-get($data, icon));
}
Overenie skupiny vstupov
Ak chcete zistiť, ktoré prvky potrebujú zaoblené rohy vo vstupnej skupine s overením, vstupná skupina vyžaduje ďalšiu .has-validation
triedu.
<div class="input-group has-validation">
<div class="input-group-prepend">
<span class="input-group-text">@</span>
</div>
<input type="text" class="form-control" required>
<div class="invalid-feedback">
Please choose a username.
</div>
</div>
Vlastné formuláre
Pre ešte väčšie prispôsobenie a konzistenciu medzi prehliadačmi použite naše úplne vlastné prvky formulára, ktoré nahradia predvolené nastavenia prehliadača. Sú postavené na sémantickom a prístupnom označení, takže sú solídnou náhradou akéhokoľvek predvoleného ovládacieho prvku formulára.
Zaškrtávacie políčka a rádiá
Každé začiarkavacie políčko, rádio <input>
a <label>
párovanie sú zabalené do jedného <div>
, aby sme vytvorili vlastné ovládanie. Štrukturálne je to rovnaký prístup ako náš predvolený .form-check
.
Používame selektor súrodenca ( ~
) pre všetky naše <input>
stavy – napríklad – na :checked
správny štýl nášho vlastného indikátora formulára. V kombinácii s .custom-control-label
triedou môžeme tiež štýlovať text pre každú položku na základe stavu <input>
'.
Predvolené nastavenie skryjeme <input>
a opacity
použijeme .custom-control-label
na vytvorenie nového vlastného indikátora formulára na jeho mieste pomocou ::before
a ::after
. Bohužiaľ nemôžeme vytvoriť vlastný, <input>
pretože CSS content
na tomto prvku nefungujú.
V zaškrtnutých stavoch používame base64 embedded SVG ikony od Open Iconic . To nám poskytuje najlepšiu kontrolu nad štýlom a umiestnením medzi prehliadačmi a zariadeniami.
Začiarkavacie políčka
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheck1">
<label class="custom-control-label" for="customCheck1">Check this custom checkbox</label>
</div>
Vlastné začiarkavacie políčka môžu tiež využívať :indeterminate
pseudotriedu, keď je manuálne nastavená pomocou JavaScriptu (nie je k dispozícii žiadny atribút HTML na jej špecifikáciu).
Ak používate jQuery, niečo také by malo stačiť:
$('.your-checkbox').prop('indeterminate', true)
Rádia
<div class="custom-control custom-radio">
<input type="radio" id="customRadio1" name="customRadio" class="custom-control-input">
<label class="custom-control-label" for="customRadio1">Toggle this custom radio</label>
</div>
<div class="custom-control custom-radio">
<input type="radio" id="customRadio2" name="customRadio" class="custom-control-input">
<label class="custom-control-label" for="customRadio2">Or toggle this other custom radio</label>
</div>
V rade
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" id="customRadioInline1" name="customRadioInline" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline1">Toggle this custom radio</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" id="customRadioInline2" name="customRadioInline" class="custom-control-input">
<label class="custom-control-label" for="customRadioInline2">Or toggle this other custom radio</label>
</div>
Zakázané
Vlastné začiarkavacie políčka a rádiá môžu byť tiež zakázané. Pridajte disabled
booleovský atribút do <input>
a vlastný indikátor a popis štítka sa automaticky upravia.
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheckDisabled1" disabled>
<label class="custom-control-label" for="customCheckDisabled1">Check this custom checkbox</label>
</div>
<div class="custom-control custom-radio">
<input type="radio" name="radioDisabled" id="customRadioDisabled2" class="custom-control-input" disabled>
<label class="custom-control-label" for="customRadioDisabled2">Toggle this custom radio</label>
</div>
Prepínače
Prepínač má označenie vlastného začiarkavacieho políčka, ale používa .custom-switch
triedu na vykreslenie prepínača. Prepínače tiež podporujú disabled
atribút.
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="customSwitch1">
<label class="custom-control-label" for="customSwitch1">Toggle this switch element</label>
</div>
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" disabled id="customSwitch2">
<label class="custom-control-label" for="customSwitch2">Disabled switch element</label>
</div>
Vyberte ponuku
Vlastné <select>
ponuky potrebujú iba vlastnú triedu .custom-select
na spustenie vlastných štýlov. Vlastné štýly sú obmedzené na <select>
počiatočný vzhľad a nemôžu upravovať <option>
s kvôli obmedzeniam prehliadača.
<select class="custom-select">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
Môžete si tiež vybrať z malých a veľkých vlastných výberov, ktoré zodpovedajú našim textovým vstupom podobnej veľkosti.
<select class="custom-select custom-select-lg mb-3">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select class="custom-select custom-select-sm">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
Atribút multiple
je tiež podporovaný:
<select class="custom-select" multiple>
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
Rovnako ako size
atribút:
<select class="custom-select" size="3">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
Rozsah
Vytvorte si vlastné <input type="range">
ovládacie prvky pomocou .custom-range
. Skladba (pozadie) a palec (hodnota) majú rovnaký štýl vo všetkých prehliadačoch. Keďže iba IE a Firefox podporujú „vypĺňanie“ ich stopy z ľavej alebo pravej strany palca ako prostriedok na vizuálne označenie pokroku, v súčasnosti to nepodporujeme.
<label for="customRange1">Example range</label>
<input type="range" class="custom-range" id="customRange1">
Vstupy rozsahu majú implicitné hodnoty pre min
a max
— 0
a 100
. Môžete zadať nové hodnoty pre tých, ktorí používajú atribúty min
a .max
<label for="customRange2">Example range</label>
<input type="range" class="custom-range" min="0" max="5" id="customRange2">
V predvolenom nastavení sa vstupy rozsahu „prichytávajú“ na celočíselné hodnoty. Ak to chcete zmeniť, môžete zadať step
hodnotu. V nižšie uvedenom príklade zdvojnásobíme počet krokov pomocou step="0.5"
.
<label for="customRange3">Example range</label>
<input type="range" class="custom-range" min="0" max="5" step="0.5" id="customRange3">
Prehliadač súborov
Vstup súboru je najdrsnejší zo všetkých a vyžaduje si dodatočný JavaScript, ak ho chcete spojiť s funkčným výberom súboru … a vybraným textom názvu súboru.
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFile">
<label class="custom-file-label" for="customFile">Choose file</label>
</div>
Skryjeme predvolený súbor <input>
cez opacity
a namiesto toho naštylizujeme <label>
. Tlačidlo je vygenerované a umiestnené s ::after
. Nakoniec deklarujeme a width
a height
na <input>
pre správne rozmiestnenie okolitého obsahu.
Preklad alebo prispôsobenie reťazcov pomocou SCSS
:lang()
Pseudotrieda sa používa na umožnenie prekladu textu „Prehľadávať“ do iných jazykov. Prepíšte alebo pridajte položky do $custom-file-text
premennej Sass pomocou príslušnej jazykovej značky a lokalizovaných reťazcov. Anglické struny je možné prispôsobiť rovnakým spôsobom. Tu je napríklad návod, ako možno pridať preklad do španielčiny (kód jazyka v španielčine je es
):
$custom-file-text: (
en: "Browse",
es: "Elegir"
);
Tu je lang(es)
akcia týkajúca sa vlastného vstupu súboru pre preklad do španielčiny:
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFileLang" lang="es">
<label class="custom-file-label" for="customFileLang">Seleccionar Archivo</label>
</div>
Aby sa zobrazil správny text, musíte správne nastaviť jazyk dokumentu (alebo jeho podstromu). Môžete to urobiť okrem iného pomocou atribútu lang
na prvku <html>
alebo Content-Language
hlavičky HTTP .
Preklad alebo prispôsobenie reťazcov pomocou HTML
Bootstrap tiež poskytuje spôsob, ako preložiť text „Prehľadávať“ do HTML s data-browse
atribútom, ktorý možno pridať k vlastnému vstupnému štítku (príklad v holandčine):
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFileLangHTML">
<label class="custom-file-label" for="customFileLangHTML" data-browse="Bestand kiezen">Voeg je document toe</label>
</div>