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ý typeatribút na všetkých vstupoch (napr. emailpre e-mailovú adresu alebo numberpre čí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.
Ovládacie prvky formulára
Ovládacie prvky textového formulára – napríklad <input>s, <select>s a <textarea>s – sú v štýle .form-controltriedy. 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>.
Pre vstupy súborov vymeňte .form-controlza .form-control-file.
Dimenzovanie
Nastavte výšky pomocou tried ako .form-control-lga .form-control-sm.
Iba na čítanie
Pridajte readonlybooleovský 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.
Č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-plaintexttriedu na odstránenie predvoleného štýlu poľa formulára a zachovajte správny okraj a výplň.
Rozsah vstupov
Nastavte vstupy horizontálneho posúvania pomocou .form-control-range.
Zaškrtávacie políčka a rádiá
Predvolené začiarkavacie políčka a rádiá sú vylepšené pomocou .form-checkjedinej 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é, ale ak chcete not-allowedumiestniť kurzor na nadradenú položku <label>, budete musieť pridať disabledatribút do .form-check-input. Atribút disabled použije svetlejšiu farbu, ktorá pomôže indikovať stav vstupu.
Používané začiarkavacie políčka a rádiá sú vytvorené tak, aby podporovali validáciu formulárov na báze HTML a poskytovali 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 špecifikovať ida foratribúty, aby ste spojili <input>a <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.
V rade
Zoskupte začiarkavacie políčka alebo rádiá v rovnakom vodorovnom riadku pridaním .form-check-inlinek ľubovoľnému .form-check.
Bez štítkov
Pridať .position-statick vstupom .form-check, ktoré neobsahujú žiadny text menovky. Nezabudnite ešte poskytnúť nejakú formu označenia pre asistenčné technológie (napríklad pomocou aria-label).
Rozloženie
Keďže Bootstrap platí display: blocktakmer 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-groupje najjednoduchší spôsob, ako pridať určitú štruktúru do formulárov. Poskytuje flexibilnú triedu, ktorá podporuje správne zoskupenie š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-inlinepotreby preberá ďalšie štýly. Použite ho s <fieldset>s, <div>s alebo takmer s akýmkoľvek iným prvkom.
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.
Riadok formulára
Môžete tiež zameniť .rowza .form-row, variáciu nášho štandardného riadku mriežky, ktorý prepíše predvolené odkvapy stĺpcov, čím získate užšie a kompaktnejšie rozloženia.
Pomocou mriežkového systému je možné vytvárať aj zložitejšie rozloženia.
Horizontálny tvar
Vytvorte vodorovné formuláre s mriežkou pridaním .rowtriedy 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-labelaj 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.
Horizontálne formátovanie štítkov
Uistite sa, že používate .col-form-label-smalebo .col-form-label-lgna vaše <label>s alebo <legend>s, aby ste správne dodržiavali veľkosť .form-control-lga .form-control-sm.
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 .cols v rámci a .rowalebo .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é .cols rovnomerne rozdelia zvyšok so špecifickými triedami stĺpcov, ako je .col-7.
Automatické nastavenie veľkosti
V nižšie uvedenom príklade sa používa nástroj flexbox na vertikálne vycentrovanie obsahu a zmeny .coltak .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.
Potom to môžete znova zmiešať s triedami stĺpcov špecifických pre veľkosť.
Použite .form-inlinetriedu 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: autona prepísanie predvoleného nastavenia Bootstrap width: 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.
Podporované sú aj ovládacie prvky a výbery vlastných formulárov.
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-onlytriedy. Existujú ďalšie alternatívne spôsoby poskytovania označenia pre asistenčné technológie, ako napríklad atribút aria-label, aria-labelledbyalebo . titleAk nie je prítomný žiadny z nich, asistenčné technológie sa môžu uchýliť k použitiu placeholderatribútu, ak je prítomný, ale všimnite si, že použitie placeholderako 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-blockv3). 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-describedbyatribú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: blocka pridáva určitý horný okraj pre ľahké rozstupy od vyššie uvedených vstupov.
Vaše heslo musí mať 8 až 20 znakov, musí obsahovať písmená a čísla a nesmie obsahovať medzery, špeciálne znaky ani emotikony.
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.
Zakázané formuláre
Pridajte disabledbooleovský atribút na vstup, aby ste zabránili interakciám používateľa a aby sa javil ako ľahší.
Ak chcete vypnúť všetky ovládacie prvky, pridajte disabledatribút do.<fieldset>
Upozornenie s kotvami
V predvolenom nastavení budú prehliadače považovať všetky ovládacie prvky natívneho formulára ( <input>a <select>prvky <button>) <fieldset disabled>za deaktivované, čím zabránia interakciám s klávesnicou a myšou. Ak však váš formulár obsahuje aj <a ... class="btn btn-*">prvky, tieto 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 a nezabráni používateľom klávesnice schopný zamerať alebo aktivovať tieto odkazy. Aby ste boli v bezpečí, použite na zakázanie takýchto odkazov vlastný JavaScript.
Kompatibilita medzi prehliadačmi
disabledZatiaľ čo Bootstrap použije tieto štýly vo všetkých prehliadačoch, Internet Explorer 11 a nižšie tento atribút plne nepodporujú <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.
V súčasnosti odporúčame používať vlastné štýly overenia, pretože predvolené overovacie správy natívneho prehliadača nie sú konzistentne vystavené asistenčným technológiám vo všetkých prehliadačoch (predovšetkým Chrome na stolnom počítači a mobile).
Ako to funguje
Tu je návod, ako funguje overenie formulárov s Bootstrap:
Overenie formulára HTML sa používa prostredníctvom dvoch pseudotried CSS :invalida :valid. Vzťahuje sa na prvky <input>, <select>, a <textarea>.
Bootstrap rozsahy štýlov :invalida :validna nadradenú .was-validatedtriedu, 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-validatedtriedu z formulára.<form>
Namiesto pseudotried na overenie na strane servera sa môžu použiť triedy .is-invalida . 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 (rôzne 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 setCustomValidityv 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ť novalidatebooleovský 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 :invalida 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.
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 môžete prispôsobiť pomocou JavaScriptu.
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-invalida .is-valid. Všimnite si, že .invalid-feedbackje to podporované aj týmito triedami.
Podporované prvky
Naše vzorové formuláre zobrazujú natívne textové <input>s vyššie, ale štýly overovania formulárov sú dostupné aj pre <textarea>s a vlastné ovládacie prvky formulárov.
Popisy
Ak to rozloženie formulára umožňuje, môžete triedy zameniť .{valid|invalid}-feedbackza .{valid|invalid}-tooltiptriedy, 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.
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 :checkedsprávny štýl nášho vlastného indikátora formulára. V kombinácii s .custom-control-labeltriedou môžeme tiež štýlovať text pre každú položku na základe stavu <input>'.
Predvolené nastavenie skryjeme <input>a opacitypoužijeme .custom-control-labelna vytvorenie nového vlastného indikátora formulára na jeho mieste pomocou ::beforea ::after. Bohužiaľ nemôžeme vytvoriť vlastný, <input>pretože CSS contentna tomto prvku nefungujú.
V zaškrtnutých stavoch používame base64 vložené ikony SVG od Open Iconic . To nám poskytuje najlepšiu kontrolu nad štýlom a umiestnením v rôznych prehliadačoch a zariadeniach.
Začiarkavacie políčka
Vlastné začiarkavacie políčka môžu tiež využívať :indeterminatepseudo triedu, keď sú 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ť:
Rádia
V rade
Zakázané
Vlastné začiarkavacie políčka a rádiá môžu byť tiež zakázané. Pridajte disabledbooleovský atribút do <input>a vlastný indikátor a popis štítka sa automaticky upravia.
Prepínače
Prepínač má označenie vlastného začiarkavacieho políčka, ale používa .custom-switchtriedu na vykreslenie prepínača. Prepínače tiež podporujú disabledatribút.
Vyberte ponuku
Vlastné <select>ponuky potrebujú iba vlastnú triedu .custom-selectna 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.
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.
Atribút multipleje tiež podporovaný:
Rovnako ako sizeatribút:
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.
Vstupy rozsahu majú implicitné hodnoty pre mina max— 0a 100. Môžete zadať nové hodnoty pre tých, ktorí používajú atribúty mina .max
V predvolenom nastavení sa vstupy rozsahu „prichytávajú“ na celočíselné hodnoty. Ak to chcete zmeniť, môžete zadať stephodnotu. V nižšie uvedenom príklade zdvojnásobíme počet krokov pomocou step="0.5".
Prehliadač súborov
Odporúčaný plugin na animáciu vlastného vstupu súboru: bs-custom-file-input , to je to, čo momentálne používame tu v našich dokumentoch.
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.
Skryjeme predvolený súbor <input>cez opacitya namiesto toho naštylujeme <label>. Tlačidlo je vygenerované a umiestnené s ::after. Nakoniec deklarujeme a widtha heightna <input>pre správne medzery pre okolitý obsah.
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-textpremennej 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):
Tu je lang(es)akcia týkajúca sa vlastného vstupu súboru pre španielsky preklad:
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 langna prvku <html>alebo Content-Languagehlavič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-browseatribútom, ktorý možno pridať k vlastnému vstupnému štítku (príklad v holandčine):