Vormid
Vormi juhtimisstiilide, paigutussuvandite ja kohandatud komponentide näited ja kasutusjuhised mitmesuguste vormide loomiseks.
Ülevaade
Bootstrapi vormijuhtelemendid laiendavad klasside abil taaskäivitatud vormistiile. Kasutage neid klasse nende kohandatud kuvade valimiseks, et muuta brauserites ja seadmetes ühtsem renderdus.
type
Kasutage kõigis sisendites (nt email
e-posti aadressi või numbrilise teabe jaoks) kindlasti sobivat atribuuti, number
et kasutada ära uuemaid sisendi juhtelemente, nagu e-posti kinnitamine, numbrivalik ja palju muud.
Siin on kiire näide Bootstrapi vormistiilide demonstreerimiseks. Lugege edasi dokumente vajalike klasside, vormide paigutuse ja muu kohta.
<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>
Vormi juhtelemendid
Tekstivormide juhtelemendid, nagu <input>
s, <select>
s ja <textarea>
s, on kujundatud koos .form-control
klassiga. Kaasatud on stiilid üldise välimuse, fookuse oleku, suuruse ja muu jaoks.
Stiili täiendamiseks uurige kindlasti meie kohandatud vorme<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>
Failisisendite jaoks vahetage .form-control
vastu .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>
Suuruse määramine
Määrake kõrgused selliste klasside abil nagu .form-control-lg
ja .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>
Loe ainult
Lisage readonly
sisendile Boolean atribuut, et vältida sisendi väärtuse muutmist. Kirjutuskaitstud sisendid näivad heledamad (nagu keelatud sisendid), kuid säilitavad standardse kursori.
<input class="form-control" type="text" placeholder="Readonly input here..." readonly>
Ainult kirjutuskaitstud lihttekst
Kui soovite, et <input readonly>
vormi elemendid oleksid laaditud lihttekstina, kasutage .form-control-plaintext
klassi, et eemaldada vormivälja vaikestiil ning säilitada õige veeris ja polster.
<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>
Vahemiku sisendid
Seadistage horisontaalselt keritavad vahemiku sisendid, kasutades .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>
Märkeruudud ja raadiod
Vaikimisi märkeruudud ja raadiod on täiustatud mõlema sisenditüübi jaoks ühe klassi abil .form-check
, mis parandab nende HTML-elementide paigutust ja käitumist . Märkeruudud on mõeldud loendis ühe või mitme valiku valimiseks, raadiod aga ühe valiku valimiseks paljude hulgast.
Toetatud on keelatud märkeruudud ja raadiod. Atribuut disabled
rakendab sisendi oleku näitamiseks heledamat värvi.
Märkeruudud ja raadionupud toetavad HTML-põhist vormide valideerimist ja pakuvad sisutihedaid, juurdepääsetavaid silte. Sellisena on meie <input>
s ja <label>
s vend-elemendid, mitte <input>
sees olevad elemendid <label>
. See on pisut üksikasjalikum, kuna peate määrama id
ja for
atribuudid, et seostada <input>
ja <label>
.
Vaikimisi (virnastatud)
Vaikimisi paigutatakse suvaline arv märkeruutusid ja raadiosid, mis on otsene vend, vertikaalselt virnastatud ja sobivate vahedega .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>
Järjekorras
Grupeerige märkeruudud või raadiod samale horisontaalsele reale, lisades .form-check-inline
need mis tahes .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>
Ilma siltideta
Lisa .position-static
sisenditele, .form-check
millel pole sildi teksti. Ärge unustage anda abitehnoloogiatele ikkagi mingi juurdepääsetav nimi (nt kasutades 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>
Paigutus
Kuna Bootstrap rakendub peaaegu kõigile meie vormi juhtelementidele, virnastatakse vorme vaikimisi vertikaalselt display: block
. width: 100%
Selle paigutuse muutmiseks vormipõhiselt saab kasutada täiendavaid klasse.
Moodustage rühmad
Klass .form-group
on lihtsaim viis vormidele struktuuri lisamiseks. See pakub paindlikku klassi, mis julgustab siltide, juhtelementide, valikulise abiteksti ja vormi kinnitamise sõnumite õiget rühmitamist. Vaikimisi kehtib see ainult margin-bottom
, kuid .form-inline
vajadusel valib see täiendavaid stiile. Kasutage seda <fieldset>
s, <div>
s või peaaegu mis tahes muu elemendiga.
<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>
Vormi ruudustik
Meie ruudustikuklasside abil saab ehitada keerukamaid vorme. Kasutage neid vormipaigutuste jaoks, mis nõuavad mitut veergu, erinevat laiust ja täiendavaid joondussuvandeid.
<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>
Vormi rida
Võite vahetada .row
ka .form-row
meie standardse ruudustikurea variandi vastu, mis alistab vaikeveergude vihmaveerennid tihedama ja kompaktsema paigutuse saamiseks.
<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>
Võresüsteemiga saab luua ka keerukamaid paigutusi.
<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>
Horisontaalne vorm
Looge ruudustikuga horisontaalseid vorme, lisades .row
klassi rühmadesse ja kasutades .col-*-*
klasse oma siltide ja juhtelementide laiuse määramiseks. Lisage kindlasti ka .col-form-label
oma <label>
s-i, et need oleksid vertikaalselt keskel koos nendega seotud vormi juhtelementidega.
Mõnikord peate vajaliku täiusliku joonduse loomiseks kasutama veerise või polsterduse utiliite. Näiteks eemaldasime padding-top
virnastatud raadiosisendite sildi, et teksti lähtejoont paremini joondada.
<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>
Horisontaalne vormisildi suurus
Kasutage kindlasti .col-form-label-sm
või .col-form-label-lg
oma <label>
s või <legend>
s, et järgida õigesti ja .form-control-lg
suurust .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>
Veeru suuruse määramine
Nagu on näidatud eelmistes näidetes, võimaldab meie ruudustikusüsteem paigutada suvalise arvu .col
s-i a .row
või .form-row
. Nad jagavad saadaoleva laiuse nende vahel võrdselt. Võite valida ka veergude alamhulga, mis võtaks rohkem või vähem ruumi, samal ajal kui ülejäänud veerud .col
jagavad ülejäänud võrdselt teatud veeruklassidega, näiteks .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>
Automaatne suuruse määramine
Allolev näide kasutab flexboxi utiliiti sisu vertikaalseks tsentreerimiseks ja muudab .col
seda .col-auto
nii, et veerud võtaksid ainult nii palju ruumi, kui vaja. Teisisõnu, veeru suurus põhineb sisul.
<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>
Seejärel saate seda uuesti miksida suurusespetsiifiliste veeruklassidega.
<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>
Ja loomulikult toetatakse kohandatud vormi juhtelemente .
<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>
Tekstisisesed vormid
Kasutage .form-inline
klassi siltide, vormi juhtelementide ja nuppude seeria kuvamiseks ühel horisontaalsel real. Vormide juhtelemendid tekstisiseses vormis erinevad veidi nende vaikeolekutest.
- Juhtelemendid on
display: flex
, ahendavad kõik HTML-i tühikud ja võimaldavad teil pakkuda joondusjuhtimist vahekauguste ja paindlike kasti utiliitidega. - Juhtelemendid ja sisendrühmad saavad
width: auto
Bootstrapi vaikeväärtuse alistadawidth: 100%
. - Juhtelemendid kuvatakse tekstisiseselt ainult vaateavades, mille laius on vähemalt 576 pikslit , et võtta arvesse kitsaid vaateavasid mobiilseadmetes.
Võimalik, et peate käsitsi lahendama üksikute vormi juhtelementide laiuse ja joondamise ruumivaheutiliitidega (nagu allpool näidatud). Lõpuks lisage alati <label>
iga vormi juhtelemendi juurde tähis, isegi kui peate selle peitma kasutajate eest, kes ei kasuta ekraanilugejat .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>
Toetatud on ka kohandatud vormi juhtelemendid ja valikud.
<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>
Alternatiivid peidetud siltidele
Abitehnoloogiatel, näiteks ekraanilugejatel, on teie vormidega probleeme, kui te ei lisa igale sisendile silti. Nende tekstisiseste vormide puhul saate .sr-only
klassi abil sildid peita. Abitehnoloogiate märgistamiseks on veel alternatiivseid meetodeid, näiteks atribuut aria-label
, aria-labelledby
või title
atribuut. Kui ükski neist pole olemas, võivad abitehnoloogiad kasutada placeholder
atribuuti, kui see on olemas, kuid pidage meeles, et placeholder
seda ei soovitata kasutada muude märgistamismeetodite asendajana.
Abitekst
Plokitaseme abiteksti vormides saab luua kasutades .form-text
(varem tuntud kui .help-block
v3). Tekstisisest abiteksti saab paindlikult rakendada, kasutades mis tahes tekstisiseseid HTML-elemente ja utiliidiklasse, näiteks .text-muted
.
Abiteksti seostamine vormi juhtelementidega
Abitekst peaks olema selgesõnaliselt seotud vormi juhtelemendiga, millega see aria-describedby
atribuudi kasutamisega seotud on. See tagab, et abitehnoloogiad (nt ekraanilugejad) teavitavad sellest abitekstist, kui kasutaja keskendub või juhtnupule siseneb.
Allolevate sisendite abiteksti saab stiilida .form-text
. See klass sisaldab display: block
ja lisab veidi ülemist veerist, et ülaltoodud sisenditest oleks lihtne vahemaa teha.
<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>
Tekstisisene tekst võib kasutada mis tahes tüüpilist tekstisisest HTML-elementi (olgu see siis <small>
, <span>
, või midagi muud), millel pole muud kui utiliidiklassi.
<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>
Puudega vormid
Lisage disabled
sisendile Boolean atribuut, et vältida kasutaja interaktsioone ja muuta see heledamaks.
<input class="form-control" id="disabledInput" type="text" placeholder="Disabled input here..." disabled>
Lisage disabled
atribuut atribuudile a <fieldset>
, et keelata kõik selles olevad juhtelemendid.
<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>
Hoiatus ankrutega
Brauserid käsitlevad kõiki a-siseste vormide loomulikke juhtelemente ( <input>
, <select>
, ja <button>
elemente) <fieldset disabled>
keelatud kujul, vältides nii klaviatuuri kui ka hiire interaktsioone.
Kui aga teie vorm sisaldab ka kohandatud nuputaolisi elemente, nagu <a ... class="btn btn-*">
, antakse neile ainult stiil pointer-events: none
. Nagu on märgitud nuppude keelatud olekut käsitlevas jaotises (ja eriti ankurelementide alamjaotises), ei ole see CSS-i atribuut veel standarditud ega ole Internet Explorer 10-s täielikult toetatud. Ankrupõhised juhtelemendid jäävad samuti endiselt fokusseeritav ja klaviatuuri abil juhitav. Peate neid juhtelemente käsitsi muutma, lisades tabindex="-1"
, et vältida nende fookuse saamist ja aria-disabled="disabled"
anda abitehnoloogiatele nende olekust märku.
Brauseriülene ühilduvus
Kuigi Bootstrap rakendab neid stiile kõigis brauserites, ei toeta Internet Explorer 11 ja vanemad disabled
atribuuti täielikult <fieldset>
. Kasutage kohandatud JavaScripti väljakomplekti keelamiseks nendes brauserites.
Kinnitamine
Andke oma kasutajatele väärtuslikku ja kasulikku tagasisidet HTML5 vormi valideerimisega – see on saadaval kõigis meie toetatud brauserites . Valige brauseri vaikevalideerimise tagasiside hulgast või rakendage kohandatud sõnumeid meie sisseehitatud klasside ja käivitava JavaScriptiga.
Kuidas see töötab
Vormi valideerimine Bootstrapiga toimib järgmiselt.
- HTML-vormingu valideerimist rakendatakse CSS-i kahe pseudoklassi
:invalid
ja:valid
. See kehtib<input>
,<select>
, ja<textarea>
elementide kohta. - Bootstrap ulatub
:invalid
ja:valid
stiilid.was-validated
ülemklassile, mida tavaliselt rakendatakse<form>
. Vastasel juhul kuvatakse kõik ilma väärtuseta kohustuslikud väljad lehe laadimisel kehtetutena. Nii saate valida, millal need aktiveerida (tavaliselt pärast vormi esitamise katset). - Vormi välimuse lähtestamiseks (näiteks dünaamiliste vormide esitamise korral AJAX-i abil) eemaldage
.was-validated
klass<form>
pärast esitamist uuesti. - Tagavarana võib serveripoolseks valideerimiseks
.is-invalid
pseudoklasside asemel.is-valid
kasutada klasse . Nad ei nõua vanemate klassi..was-validated
- CSS-i toimimise piirangute tõttu ei saa me (praegu)
<label>
ilma kohandatud JavaScripti abita rakendada stiile DOM-is enne vormijuhtelementi. - Kõik kaasaegsed brauserid toetavad piirangute valideerimise API -d , mis on JavaScripti meetodite seeria vormi juhtelementide kinnitamiseks.
- Tagasisidesõnumid võivad kasutada brauseri vaikeseadeid (iga brauseri puhul erinevad ja CSS-i kaudu stiilivabad) või meie kohandatud tagasisidestiile koos täiendava HTML-i ja CSS-iga.
- Saate esitada kohandatud kehtivussõnumeid
setCustomValidity
JavaScriptis.
Seda silmas pidades kaaluge meie kohandatud vormide valideerimisstiilide, valikuliste serveripoolsete klasside ja brauseri vaikeseadete jaoks järgmisi demosid.
Kohandatud stiilid
Kohandatud Bootstrapi vormi valideerimissõnumite jaoks peate lisama novalidate
tõeväärtuse atribuudi oma <form>
. See keelab brauseri vaiketagasiside tööriistavihjed, kuid annab siiski juurdepääsu JavaScripti vormi valideerimise API-dele. Proovige esitada allolev vorm; meie JavaScript peatab saatmisnupu ja edastab teile tagasisidet. Kui proovite esitada, näete vormi juhtelementidele rakendatud stiile :invalid
ja .:valid
Kohandatud tagasiside stiilid rakendavad tagasiside paremaks edastamiseks kohandatud värve, ääriseid, fookusstiile ja taustaikoone. Taustaikoonid <select>
s jaoks on saadaval ainult .custom-select
, kuid mitte .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>
Brauseri vaikeseaded
Kas te pole huvitatud kohandatud valideerimise tagasiside sõnumitest või JavaScripti kirjutamisest, et muuta vormi käitumist? Kõik hea, saate kasutada brauseri vaikeseadeid. Proovige esitada allolev vorm. Sõltuvalt teie brauserist ja OS-ist näete veidi erinevat tagasisidestiili.
Kuigi neid tagasiside stiile ei saa CSS-iga kujundada, saate siiski JavaScripti kaudu tagasiside teksti kohandada.
<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>
Serveri pool
Soovitame kasutada kliendipoolset valideerimist, kuid kui vajate serveripoolset valideerimist, saate kehtetud ja kehtivatele vormiväljadele märkida .is-invalid
ja .is-valid
. Pange tähele, et .invalid-feedback
seda toetatakse ka nende klassidega.
Kehtetute väljade puhul veenduge, et kehtetu tagasiside/veateade oleks seotud vastava vormiväljaga, kasutades aria-describedby
. See atribuut võimaldab id
viidata rohkem kui ühele juhul, kui väli osutab juba täiendavale vormitekstile.
<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>
Toetatud elemendid
Valideerimisstiilid on saadaval järgmiste vormi juhtelementide ja komponentide jaoks.
<input>
s ja<textarea>
s koos.form-control
<select>
s koos.form-control
või.custom-select
.form-check
s.custom-checkbox
s ja.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>
Tööriistanõuanded
Kui teie vormipaigutus seda võimaldab, saate vahetada .{valid|invalid}-feedback
klassid .{valid|invalid}-tooltip
klasside vastu, et kuvada stiilis kohtspikris valideerimise tagasisidet. position: relative
Tööriistavihje positsioneerimiseks kasutage seda kindlasti lapsevanemal . Allolevas näites on see meie veeruklassidel juba olemas, kuid teie projekt võib vajada alternatiivset seadistust.
<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>
Kohandamine
Valideerimisolekuid saab Sassi kaudu $form-validation-states
kaardiga kohandada. See meie failis asuv _variables.scss
Sassi kaart on vaike- valid
/ invalid
valideerimisolekute genereerimiseks silmusel. Kaasas on pesastatud kaart iga osariigi värvi ja ikooni kohandamiseks. Kuigi brauserid ei toeta ühtegi teist olekut, saavad kohandatud stiilide kasutajad hõlpsasti lisada keerukama vormi tagasisidet.
Pange tähele, et me ei soovita neid väärtusi kohandada ilma ka form-validation-state
mixini muutmata.
// 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));
}
Sisendrühma valideerimine
Et tuvastada, millised elemendid vajavad valideerimisega sisendrühmas ümaraid nurki, vajab sisendrühm täiendavat .has-validation
klassi.
<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>
Kohandatud vormid
Veelgi suurema kohandamise ja brauseriülese järjepidevuse saavutamiseks kasutage brauseri vaikeseadete asendamiseks meie täielikult kohandatud vormielemente. Need on üles ehitatud semantilisele ja juurdepääsetavale märgistusele, nii et need asendavad tugevalt kõiki vaikevormi juhtelemente.
Märkeruudud ja raadiod
Iga märkeruut ja raadio <input>
ja <label>
sidumine on ümbritsetud märgiga, <div>
et luua meie kohandatud juhtelement. Struktuuriliselt on see sama lähenemisviis, mis meie vaikeseade .form-check
.
Kasutame ~
kõigi oma <input>
olekute jaoks vendade valijat ( ) :checked
kohandatud vormi indikaatori õigeks stiiliks. Klassiga kombineerituna .custom-control-label
saame iga üksuse teksti <input>
oleku alusel ka stiilida.
Peidame vaikeväärtuse <input>
ja opacity
kasutame .custom-control-label
selle asemele uue kohandatud vormi indikaatori loomiseks ::before
ja ::after
. Kahjuks ei saa me ainult selle elemendi põhjal kohandatud luua, <input>
kuna CSS-id content
selle elemendiga ei tööta.
Märgitud olekus kasutame Base64 manustatud SVG ikoone Open Iconicult . See annab meile parima juhtimise stiili ja positsioneerimise üle brauserites ja seadmetes.
Märkeruudud
<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>
Kohandatud märkeruudud võivad kasutada ka :indeterminate
pseudoklassi, kui need on käsitsi määratud JavaScripti kaudu (selle määramiseks pole saadaval HTML-i atribuuti).
Kui kasutate jQueryt, peaks piisama sellisest:
$('.your-checkbox').prop('indeterminate', true)
Raadiod
<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>
Järjekorras
<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>
Keelatud
Kohandatud märkeruudud ja raadiod saab ka keelata. Lisage disabled
boolean atribuut <input>
ja kohandatud indikaator ja sildi kirjeldus kujundatakse automaatselt.
<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>
Lülitid
Lülitil on kohandatud märkeruudu märgistus, kuid see kasutab .custom-switch
lülituslüliti renderdamiseks klassi. disabled
Atribuuti toetavad ka lülitid .
<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>
Valige menüü
Kohandatud <select>
menüüd vajavad .custom-select
kohandatud stiilide käivitamiseks ainult kohandatud klassi. Kohandatud stiilid on piiratud algse välimusega ja brauseri piirangute tõttu <select>
ei saa neid muuta .<option>
<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>
Samuti saate valida väikeste ja suurte kohandatud valikute hulgast, et need sobiksid meie sarnase suurusega tekstisisestustega.
<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>
Atribuuti multiple
toetatakse ka:
<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>
Nagu size
atribuut:
<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>
Vahemik
Looge kohandatud <input type="range">
juhtelemente rakendusega .custom-range
. Rada (taust) ja pöial (väärtus) on kujundatud nii, et need paistaksid kõigis brauserites ühesugused. Kuna ainult IE ja Firefox toetavad oma raja "täitmist" pöidla vasakult või paremalt, et visuaalselt edenemist näidata, ei toeta me seda praegu.
<label for="customRange1">Example range</label>
<input type="range" class="custom-range" id="customRange1">
Vahemiku sisenditel on kaudsed väärtused vastavalt min
ja max
— 0
ja 100
. Saate määrata uued väärtused neile, kes kasutavad atribuute min
ja .max
<label for="customRange2">Example range</label>
<input type="range" class="custom-range" min="0" max="5" id="customRange2">
Vaikimisi sisestavad vahemiku sisendid täisarvu väärtustele. Selle muutmiseks saate määrata step
väärtuse. Allolevas näites kahekordistame sammude arvu, kasutades step="0.5"
.
<label for="customRange3">Example range</label>
<input type="range" class="custom-range" min="0" max="5" step="0.5" id="customRange3">
Failibrauser
Failisisend on kõige räigeim ja nõuab täiendavat JavaScripti, kui soovite ühendada need funktsionaalse Vali fail… ja valitud failinime tekstiga.
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFile">
<label class="custom-file-label" for="customFile">Choose file</label>
</div>
Peidame vaikefaili <input>
kaudu opacity
ja laadime selle asemel <label>
. Nupp genereeritakse ja asetatakse koos ::after
. Lõpuks deklareerime ümbritseva sisu jaoks õigete vahedega a width
ja .height
<input>
Stringide tõlkimine või kohandamine SCSS-iga
Pseudoklassi :lang()
kasutatakse "Sirvi" teksti tõlkimiseks teistesse keeltesse. $custom-file-text
Alistage või lisage Sassi muutuja kirjed asjakohase keelesildi ja lokaliseeritud stringidega. Ingliskeelseid stringe saab kohandada samal viisil. Näiteks saate hispaaniakeelse tõlke lisada järgmiselt (hispaania keele kood on es
):
$custom-file-text: (
en: "Browse",
es: "Elegir"
);
Siin lang(es)
toimib hispaaniakeelse tõlke kohandatud failisisend:
<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>
Õige teksti kuvamiseks peate oma dokumendi (või selle alampuu) keele õigesti määrama. Seda saab teha muu hulgas elemendi lang
atribuudi<html>
või Content-Language
HTTP-päise abil.
Stringide tõlkimine või kohandamine HTML-iga
Bootstrap pakub ka viisi "Sirvi" teksti tõlkimiseks HTML-i data-browse
atribuudiga, mille saab lisada kohandatud sisendsildile (näide hollandi keeles):
<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>