Primeri in smernice za uporabo slogov nadzora obrazca, možnosti postavitve in komponent po meri za ustvarjanje najrazličnejših obrazcev.
Pregled
Kontrolniki obrazcev Bootstrap razširijo naše stile obrazcev Rebooted z razredi. Uporabite te razrede, da se odločite za njihove prilagojene prikaze za bolj dosledno upodabljanje v brskalnikih in napravah.
Prepričajte se, da uporabljate ustrezen typeatribut pri vseh vnosih (npr. emailza e-poštni naslov ali numberza številske informacije), da izkoristite novejše kontrolnike vnosa, kot je preverjanje e-pošte, izbira številk in več.
Tukaj je hiter primer za predstavitev slogov obrazcev Bootstrapa. Nadaljujte z branjem za dokumentacijo o zahtevanih razredih, postavitvi obrazca in več.
Kontrolniki obrazca
Kontrolniki besedilne oblike, kot <input>so s, <select>s in <textarea>s, so oblikovani z .form-controlrazredom. Vključeni so slogi za splošni videz, stanje fokusa, velikost in drugo.
Bodite prepričani, da raziščete naše obrazce po meri , da še dodatno oblikujete <select>.
Za vnose datotek zamenjajte .form-controlza .form-control-file.
Dimenzioniranje
Nastavite višine z uporabo razredov, kot sta .form-control-lgin .form-control-sm.
Le za branje
Vnosu dodajte readonlylogični atribut, da preprečite spreminjanje vrednosti vnosa. Vnosi samo za branje so videti svetlejši (tako kot onemogočeni vnosi), vendar ohranijo standardni kazalec.
Navadno besedilo samo za branje
Če želite, da so <input readonly>elementi v vašem obrazcu oblikovani kot golo besedilo, uporabite .form-control-plaintextrazred, da odstranite privzeti slog polja obrazca in ohranite pravilen rob in oblazinjenje.
Vhodi obsega
Nastavite vodoravno drsne vnose obsega z uporabo .form-control-range.
Potrditvena polja in radijski sprejemniki
Privzeta potrditvena polja in radii so izboljšani s pomočjo .form-checkenega samega razreda za obe vrsti vnosa, ki izboljša postavitev in obnašanje njunih elementov HTML . Potrditvena polja so namenjena izbiri ene ali več možnosti na seznamu, medtem ko so radijski sprejemniki namenjeni izbiri ene možnosti izmed mnogih.
Podprta so onemogočena potrditvena polja in radijski elementi, a če želite zagotoviti not-allowedkazalec ob lebdenju nad nadrejenim elementom <label>, boste morali disabledatribut dodati v .form-check-input. Onemogočen atribut bo uporabil svetlejšo barvo, ki bo pomagala prikazati stanje vnosa.
Potrditvena polja in radijski sprejemniki so zasnovani tako, da podpirajo preverjanje obrazcev, ki temelji na HTML, in zagotavljajo jedrnate, dostopne oznake. Kot taka sta naša <input>s in <label>s sorodna elementa v nasprotju z elementom <input>znotraj a <label>. To je nekoliko bolj podrobno, saj morate določiti atribute idin forza povezavo <input>in <label>.
Privzeto (naloženo)
Privzeto bo poljubno število potrditvenih polj in radijskih postaj, ki so neposredno sorodne, navpično zložene in ustrezno razmaknjene z .form-check.
V vrsti
Združite potrditvena polja ali radijske postaje v isto vodoravno vrstico tako, da jih dodate .form-check-inlinekateremu koli .form-check.
Brez nalepk
Dodaj .position-staticmed vnose .form-check, ki nimajo besedila oznake. Ne pozabite zagotoviti neke oblike oznake za podporne tehnologije (na primer uporaba aria-label).
Postavitev
Ker se Bootstrap uporablja display: blockza width: 100%skoraj vse naše kontrolnike obrazcev, bodo obrazci privzeto zloženi navpično. Dodatne razrede je mogoče uporabiti za spreminjanje te postavitve glede na obrazec.
Oblikujte skupine
Razred .form-groupje najlažji način, da obrazcem dodate nekaj strukture. Zagotavlja prilagodljiv razred, ki spodbuja pravilno združevanje oznak, kontrolnikov, neobveznega besedila pomoči in sporočil za preverjanje obrazca. Privzeto velja le margin-bottom, vendar po .form-inlinepotrebi izbere dodatne sloge. Uporabite ga s <fieldset>s, <div>s ali skoraj katerim koli drugim elementom.
Mreža obrazca
Bolj zapletene oblike je mogoče zgraditi z uporabo naših mrežnih razredov. Uporabite jih za postavitve obrazcev, ki zahtevajo več stolpcev, različne širine in dodatne možnosti poravnave.
Oblikujte vrstico
Zamenjate lahko tudi .rowza .form-row, različico naše standardne mrežne vrstice, ki preglasi privzete žlebove stolpcev za tesnejše in bolj kompaktne postavitve.
Z mrežnim sistemom je mogoče ustvariti tudi bolj zapletene postavitve.
Horizontalna oblika
Ustvarite vodoravne obrazce z mrežo tako, da dodate .rowrazred skupinam obrazcev in z uporabo .col-*-*razredov določite širino svojih oznak in kontrolnikov. Prepričajte se, da dodate .col-form-labeltudi svojim <label>s, da bodo navpično centrirani s svojimi povezanimi kontrolniki obrazca.
Včasih boste morda morali uporabiti pripomočke za rob ali oblazinjenje, da ustvarite popolno poravnavo, ki jo potrebujete. Odstranili smo na primer oznako padding-topna naših zloženih radijskih vhodih, da bi bolje poravnali osnovno črto besedila.
Dimenzioniranje etikete vodoravne oblike
Bodite prepričani, da uporabite .col-form-label-smali .col-form-label-lgza vaš <label>s ali <legend>s, da pravilno sledite velikosti .form-control-lgin .form-control-sm.
Velikost stolpca
Kot je prikazano v prejšnjih primerih, vam naš mrežni sistem omogoča, da postavite poljubno število .cols znotraj .rowali .form-row. Razpoložljivo širino si bodo enakomerno razdelili. Izberete lahko tudi podmnožico vaših stolpcev, ki bo zavzela več ali manj prostora, medtem ko preostali .cols enakomerno razdelijo preostanek s posebnimi razredi stolpcev, kot je .col-7.
Samodejno določanje velikosti
Spodnji primer uporablja pripomoček flexbox za navpično centriranje vsebine in spremembe .col, .col-autotako da vaši stolpci zavzamejo le toliko prostora, kot je potrebno. Povedano drugače, velikost stolpca je odvisna od vsebine.
Nato lahko to znova zmešate z razredi stolpcev, specifičnih za velikost.
Uporabite .form-inlinerazred za prikaz serije oznak, kontrolnikov obrazca in gumbov v eni vodoravni vrstici. Kontrolniki obrazcev v vgrajenih obrazcih se nekoliko razlikujejo od privzetih stanj.
Kontrolniki so display: flex, strnejo vsak prazen prostor HTML in vam omogočajo, da zagotovite nadzor poravnave s pripomočki za razmik in flexbox .
Kontrolniki in vnosne skupine prejmejo width: autopreglasitev privzete vrednosti Bootstrap width: 100%.
Kontrolniki so prikazani samo v vrsticah v pogledih, ki so široki vsaj 576 slikovnih pik, da se upoštevajo ozki pogledi na mobilnih napravah.
Morda boste morali ročno obravnavati širino in poravnavo posameznih kontrolnikov obrazca s pripomočki za razmik (kot je prikazano spodaj). Na koncu se prepričajte, da z vsakim kontrolnikom obrazca vedno vključite a <label>, tudi če ga morate skriti pred obiskovalci, ki ne uporabljajo bralnika zaslona, z .sr-only.
Podprti so tudi kontrolniki in izbire obrazcev po meri.
Alternative za skrite oznake
Podporne tehnologije, kot so bralniki zaslona, bodo imele težave z vašimi obrazci, če ne vključite oznake za vsak vnos. Za te vgrajene obrazce lahko skrijete oznake z uporabo .sr-onlyrazreda. Obstajajo še drugi alternativni načini zagotavljanja oznake za podporne tehnologije, kot je aria-labelatribut ali aria-labelledby. titleČe nobeden od teh ni prisoten, lahko podporne tehnologije uporabijo placeholderatribut, če je prisoten, vendar upoštevajte, da uporaba placeholderkot nadomestilo za druge metode označevanja ni priporočljiva.
Besedilo pomoči
Besedilo pomoči na ravni bloka v obrazcih je mogoče ustvariti z .form-text(prej znano kot .help-blockv v3). Besedilo pomoči v vrstici je mogoče prilagodljivo implementirati z uporabo katerega koli elementa HTML v vrstici in razredov pripomočkov, kot je .text-muted.
Povezovanje besedila pomoči s kontrolniki obrazca
Besedilo pomoči mora biti izrecno povezano s kontrolnikom obrazca, na katerega se nanaša z uporabo aria-describedbyatributa. To bo zagotovilo, da bodo podporne tehnologije, kot so bralniki zaslona, objavile to besedilo pomoči, ko se uporabnik osredotoči ali vstopi v kontrolnik.
Besedilo pomoči pod vnosi je mogoče oblikovati z .form-text. Ta razred vključuje display: blockin doda nekaj zgornjega roba za enostavno ločitev od zgornjih vnosov.
Vaše geslo mora biti dolgo od 8 do 20 znakov, vsebovati mora črke in številke ter ne sme vsebovati presledkov, posebnih znakov ali emojijev.
Besedilo v vrstici lahko uporablja kateri koli tipičen element HTML v vrstici (naj bo to <small>, <span>, ali kaj drugega) z nič več kot razredom uporabnosti.
Onemogočeni obrazci
V vnos dodajte disabledlogični atribut, da preprečite interakcije uporabnikov in naredite lažji.
Dodajte disabledatribut a <fieldset>, da onemogočite vse kontrole znotraj.
Opozorilo s sidri
Brskalniki bodo privzeto obravnavali vse izvorne kontrolnike obrazca ( <input>, <select>in <button>elemente) znotraj <fieldset disabled>kot onemogočene, kar bo preprečilo interakcije s tipkovnico in miško na njih. Če pa vaš obrazec vključuje tudi <a ... class="btn btn-*">elemente, bodo ti dobili samo slog pointer-events: none. Kot je navedeno v razdelku o onemogočenem stanju za gumbe (in posebej v podrazdelku za sidrne elemente), ta lastnost CSS še ni standardizirana in ni v celoti podprta v Internet Explorerju 10 ter uporabnikom tipkovnice ne bo preprečila, da bi se lahko osredotoči ali aktivira te povezave. Če želite biti varni, uporabite JavaScript po meri, da onemogočite takšne povezave.
Združljivost med brskalniki
Medtem ko bo Bootstrap uporabil te sloge v vseh brskalnikih, Internet Explorer 11 in novejši ne podpirajo v celoti disabledatributa na <fieldset>. Uporabite JavaScript po meri, da onemogočite nabor polj v teh brskalnikih.
Validacija
Zagotovite svojim uporabnikom dragocene in koristne povratne informacije s preverjanjem obrazca HTML5 – na voljo v vseh naših podprtih brskalnikih . Izbirajte med privzetimi povratnimi informacijami o preverjanju brskalnika ali implementirajte sporočila po meri z našimi vgrajenimi razredi in začetnim JavaScriptom.
Trenutno priporočamo uporabo stilov preverjanja po meri, saj privzeta sporočila za preverjanje izvornega brskalnika niso dosledno izpostavljena podpornim tehnologijam v vseh brskalnikih (predvsem Chrome v namizju in mobilni napravi).
Kako deluje
Takole deluje preverjanje obrazca z Bootstrapom:
Preverjanje obrazca HTML se uporablja prek dveh psevdorazredov CSS :invalidin :valid. Velja za elemente <input>, <select>in .<textarea>
Bootstrap obsega :invalidin :validstile za nadrejeni .was-validatedrazred, običajno uporabljen za <form>. V nasprotnem primeru se vsako zahtevano polje brez vrednosti ob nalaganju strani prikaže kot neveljavno. Tako lahko izberete, kdaj jih želite aktivirati (običajno po poskusu oddaje obrazca).
Če želite ponastaviti videz obrazca (na primer v primeru dinamičnih oddaj obrazcev z uporabo AJAX), po oddaji znova odstranite .was-validatedrazred iz .<form>
Namesto psevdorazredov za preverjanje veljavnosti na strani strežnika.is-invalid se lahko uporabijo tudi .is-validrazredi . Ne potrebujejo nadrejenega razreda..was-validated
Zaradi omejitev delovanja CSS ne moremo (trenutno) uporabiti slogov za a <label>, ki je pred kontrolnikom obrazca v DOM, brez pomoči JavaScripta po meri.
Vsi sodobni brskalniki podpirajo API za preverjanje omejitev , niz metod JavaScript za preverjanje kontrolnikov obrazcev.
Sporočila s povratnimi informacijami lahko uporabljajo privzete nastavitve brskalnika (različne za vsak brskalnik in jih ni mogoče oblikovati prek CSS) ali naše sloge povratnih informacij po meri z dodatnima HTML in CSS.
setCustomValidityV JavaScriptu lahko zagotovite sporočila o veljavnosti po meri .
S tem v mislih razmislite o naslednjih predstavitvah za naše sloge preverjanja obrazcev po meri, izbirne razrede na strani strežnika in privzete nastavitve brskalnika.
Slogi po meri
Za sporočila o preverjanju obrazca Bootstrap po meri boste morali dodati novalidatelogični atribut v svoj <form>. To onemogoči privzete povratne informacije brskalnika, vendar še vedno omogoča dostop do API-jev za preverjanje obrazca v JavaScriptu. Poskusite oddati spodnji obrazec; naš JavaScript bo prestregel gumb za oddajo in vam posredoval povratne informacije.
Ko boste poskušali oddati, boste videli sloge :invalidin uporabljene za vaše kontrolnike obrazca.:valid
Privzete nastavitve brskalnika
Vas ne zanimajo povratna sporočila preverjanja po meri ali pisanje JavaScripta za spreminjanje vedenja obrazcev? Vse v redu, lahko uporabite privzete nastavitve brskalnika. Poskusite oddati spodnji obrazec. Odvisno od vašega brskalnika in operacijskega sistema boste videli nekoliko drugačen slog povratnih informacij.
Čeprav teh slogov povratnih informacij ni mogoče oblikovati s CSS, lahko še vedno prilagodite besedilo povratnih informacij prek JavaScripta.
Strežniška stran
Priporočamo uporabo preverjanja na strani odjemalca, če pa potrebujete strežniško stran, lahko označite neveljavna in veljavna polja obrazca z .is-invalidin .is-valid. Upoštevajte, da .invalid-feedbackje podprt tudi s temi razredi.
Podprti elementi
Naši primeri obrazcev prikazujejo izvorna besedilna besedila <input>zgoraj, vendar so slogi za preverjanje obrazcev na voljo tudi za naše kontrolnike obrazcev po meri.
Namigi orodij
Če postavitev vašega obrazca to omogoča, lahko zamenjate .{valid|invalid}-feedbackrazrede za .{valid|invalid}-tooltiprazrede, da prikažete povratne informacije o preverjanju v oblikovanem opisu orodja. Prepričajte se, da je prisoten nadrejeni position: relativeelement za pozicioniranje namigov orodij. V spodnjem primeru naši razredi stolpcev to že imajo, vendar bo vaš projekt morda zahteval alternativno nastavitev.
Obrazci po meri
Za še več prilagajanja in doslednosti med brskalniki uporabite naše popolnoma prilagojene elemente obrazca, da nadomestite privzete nastavitve brskalnika. Zgrajeni so na semantičnem in dostopnem označevanju, zato so dobra zamenjava za kateri koli privzeti kontrolnik obrazca.
Potrditvena polja in radijski sprejemniki
Vsako potrditveno polje in radio sta zavita v a <div>s sorodnikom <span>, da ustvarimo naš kontrolnik po meri in a <label>za spremno besedilo. Strukturno je to enak pristop kot naš privzeti .form-check.
Izbirnik sorodnikov ( ~) uporabljamo za vsa naša <input>stanja – na primer – za :checkedpravilno oblikovanje indikatorja obrazca po meri. V kombinaciji z .custom-control-labelrazredom lahko oblikujemo tudi besedilo za vsak element glede na stanje <input>'s.
Privzeto skrijemo <input>z opacityin uporabimo .custom-control-labelza izdelavo novega indikatorja obrazca po meri na njegovem mestu z ::beforein ::after. Na žalost ne moremo ustvariti prilagojenega samo iz elementa, <input>ker CSS contentne deluje na tem elementu.
V označenih stanjih uporabljamo vdelane ikone SVG base64 iz Open Iconic . To nam zagotavlja najboljši nadzor za oblikovanje in pozicioniranje v brskalnikih in napravah.
Potrditvena polja
Potrditvena polja po meri lahko uporabljajo tudi :indeterminatepsevdorazred, če so ročno nastavljena prek JavaScripta (ni razpoložljivega atributa HTML za njegovo določitev).
Če uporabljate jQuery, bi moralo zadostovati nekaj takega:
Radijski sprejemniki
V vrsti
Onemogočeno
Potrditvena polja po meri in radijske postaje je mogoče tudi onemogočiti. Dodajte disabledlogični atribut <input>in indikator po meri ter opis oznake bosta samodejno oblikovana.
Izberite meni
Meniji po meri <select>potrebujejo le razred po meri, .custom-selectda sprožijo sloge po meri. Slogi po meri so omejeni na <select>začetni videz in ne morejo spremeniti <option>s zaradi omejitev brskalnika.
Izbirate lahko tudi med majhnimi in velikimi izbirami po meri, ki ustrezajo našim vnosom besedila podobne velikosti.
Podprt je tudi multipleatribut:
Tako kot sizeatribut:
Razpon
Ustvarite <input type="range">kontrole po meri z .custom-range. Skladba (ozadje) in palec (vrednost) sta oblikovana tako, da sta videti enako v vseh brskalnikih. Ker samo IE in Firefox podpirata "polnjenje" njihove sledi z levega ali desnega roba palca kot sredstvo za vizualno označevanje napredka, tega trenutno ne podpiramo.
Vhodi obsega imajo implicitne vrednosti za minin max— 0oziroma 100. Določite lahko nove vrednosti za tiste, ki uporabljajo atribute minin .max
Privzeto se vhodi obsega »pripnejo« na celoštevilske vrednosti. Če želite to spremeniti, lahko določite stepvrednost. V spodnjem primeru podvojimo število korakov z uporabo step="0.5".
Brskalnik datotek
Datotečni vnos je najbolj zapleten v skupini in zahteva dodaten JavaScript, če jih želite povezati s funkcionalnim Izberite datoteko ... in izbranim besedilom imena datoteke.
Privzeto datoteko skrijemo <input>prek opacityin namesto tega oblikujemo <label>. Gumb je ustvarjen in postavljen z ::after. Nazadnje razglasimo widthin heightna <input>za ustrezen razmik za okoliško vsebino.
Prevajanje ali prilagajanje nizov
Psevdorazred :lang()se uporablja za omogočanje prevoda besedila »Prebrskaj« v druge jezike. Preglasite ali dodajte vnose v $custom-file-textspremenljivko Sass z ustrezno jezikovno oznako in lokaliziranimi nizi. Angleške nize je mogoče prilagoditi na enak način. Na primer, tukaj je opisano, kako lahko dodate španski prevod (jezikovna koda španščine je es):
Tukaj je lang(es)v akciji vnos datoteke po meri za španski prevod:
Pravilno boste morali nastaviti jezik dokumenta (ali njegovega poddrevesa), da bo prikazano pravilno besedilo. To lahko med drugimi metodami storite z uporabo atributa elementa langali<html> glave Content-LanguageHTTP .