Mga porma
Mga panig-ingnan ug mga giya sa paggamit alang sa mga istilo sa pagkontrol sa porma, mga kapilian sa layout, ug naandan nga mga sangkap alang sa paghimo og daghang lainlain nga mga porma.
Overview
Ang mga kontrol sa porma sa Bootstrap nagpalapad sa among Gi-reboot nga mga istilo sa porma nga adunay mga klase. Gamita kini nga mga klase aron makapili sa ilang gipahiangay nga mga pasundayag alang sa mas makanunayon nga paghubad sa mga browser ug aparato.
Siguruha nga mogamit usa ka angay type
nga kinaiya sa tanan nga mga input (pananglitan, email
alang sa email address o number
alang sa numerical nga impormasyon) aron mapahimuslan ang mas bag-ong mga kontrol sa input sama sa pag-verify sa email, pagpili sa numero, ug uban pa.
Ania ang usa ka dali nga pananglitan aron ipakita ang mga istilo sa porma sa Bootstrap. Padayon sa pagbasa alang sa dokumentasyon sa gikinahanglan nga mga klase, porma layout, ug uban pa.
<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>
Mga kontrol sa porma
Ang mga kontrol sa porma sa teksto—sama <input>
sa s, <select>
s, ug <textarea>
s—gi-istilo sa .form-control
klase. Apil ang mga estilo alang sa kinatibuk-ang panagway, kahimtang sa pagtutok, gidak-on, ug uban pa.
Siguruha nga susihon ang among naandan nga mga porma sa dugang nga istilo <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>
Alang sa mga input sa file, ibaylo ang .form-control
para sa .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>
Pagsukod
Ibutang ang mga gitas-on gamit ang mga klase sama sa .form-control-lg
ug .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>
Basaha ra
Idugang ang readonly
boolean nga attribute sa usa ka input aron malikayan ang pagbag-o sa bili sa input. Ang read-only inputs makita nga mas gaan (sama sa mga disabled inputs), apan ipabilin ang standard cursor.
<input class="form-control" type="text" placeholder="Readonly input here..." readonly>
Basaha lamang nga yano nga teksto
Kung gusto nimo nga adunay <input readonly>
mga elemento sa imong porma nga gi-istilo ingon yano nga teksto, gamita ang .form-control-plaintext
klase aron tangtangon ang default nga pag-istilo sa field sa porma ug ipreserba ang husto nga margin ug padding.
<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>
Range Inputs
Itakda ang horizontally scrollable range inputs gamit ang .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>
Mga checkbox ug radyo
Ang mga default nga checkbox ug radyo gipaayo sa tabang sa .form-check
, usa ka klase alang sa duha ka tipo sa input nga nagpauswag sa layout ug pamatasan sa ilang mga elemento sa HTML . Ang mga checkbox kay para sa pagpili og usa o ubay-ubay nga mga opsyon sa usa ka lista, samtang ang mga radyo para sa pagpili og usa ka opsyon gikan sa daghan.
Gisuportahan ang mga disabled nga checkbox ug radyo. Ang disabled
hiyas mag-aplay ug mas gaan nga kolor aron makatabang sa pagpakita sa kahimtang sa input.
Ang mga checkbox ug radio button nagsuporta sa HTML-based form validation ug naghatag ug mugbo, accessible nga mga label. Sa ingon, ang atong <input>
s ug <label>
s kay managsuon nga elemento sukwahi sa <input>
sulod sa <label>
. Kini mao ang gamay nga mas verbose ingon nga kamo kinahanglan gayud nga espesipiko id
ug for
mga hiyas sa pag-asoy sa <input>
ug <label>
.
Default (stacked)
Sa kasagaran, ang bisan unsang gidaghanon sa mga checkbox ug radyo nga diha-diha nga igsoon ipatindog nga patayo ug tukma nga ibutang sa .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>
Inline
Grupo ang mga checkbox o mga radyo sa parehas nga pinahigda nga laray pinaagi sa pagdugang .form-check-inline
sa bisan unsang .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>
Walay mga label
Idugang .position-static
sa mga input sa sulod .form-check
nga walay bisan unsang label nga teksto. Hinumdumi nga maghatag gihapon og usa ka porma sa ma-access nga ngalan alang sa mga teknolohiya nga makatabang (pananglitan, gamit ang 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>
Layout
Tungod kay ang Bootstrap magamit display: block
ug width: 100%
sa halos tanan namong mga kontrol sa porma, ang mga porma pinaagi sa default stack nga patindog. Ang dugang nga mga klase mahimong magamit aron usbon kini nga layout sa per-form nga basehan.
Pagporma og mga grupo
Ang .form-group
klase mao ang pinakasayon nga paagi sa pagdugang sa pipila ka istruktura sa mga porma. Naghatag kini usa ka flexible nga klase nga nagdasig sa husto nga paggrupo sa mga label, kontrol, opsyonal nga teksto sa tabang, ug pagporma sa pag-validate sa mensahe. Sa kasagaran kini magamit lamang margin-bottom
, apan kini mokuha og dugang nga mga estilo .form-inline
kon gikinahanglan. Gamita kini sa <fieldset>
s, <div>
s, o halos bisan unsang elemento.
<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>
Porma nga grid
Ang mas komplikado nga mga porma mahimong matukod gamit ang among mga klase sa grid. Gamita kini alang sa mga porma nga layout nga nanginahanglan daghang mga kolum, lainlain nga gilapdon, ug dugang nga mga kapilian sa pag-align.
<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>
Porma nga laray
Mahimo ka usab nga magbaylo .row
og .form-row
, usa ka kalainan sa among standard nga grid row nga nag-override sa default nga column gutters alang sa mas hugot ug mas compact nga mga layout.
<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>
Ang mas komplikado nga mga layout mahimo usab nga mahimo gamit ang grid system.
<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>
Horizontal nga porma
Paghimo og pinahigda nga mga porma nga adunay grid pinaagi sa pagdugang sa .row
klase aron maporma ang mga grupo ug gamit ang mga .col-*-*
klase aron itakda ang gilapdon sa imong mga label ug kontrol. Siguruha nga idugang .col-form-label
usab ang imong <label>
mga s aron kini patindog nga nakasentro sa ilang kauban nga mga kontrol sa porma.
Usahay, kinahanglan nimo nga gamiton ang mga gamit sa margin o padding aron mahimo ang hingpit nga pag-align nga kinahanglan nimo. Pananglitan, gitangtang namo ang padding-top
label sa among stacked radio inputs aron mas maayo nga i-align ang text baseline.
<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>
Horizontal nga porma nga pagsukod sa label
Siguroha nga gamiton .col-form-label-sm
o .col-form-label-lg
sa imong <label>
s o <legend>
s sa husto nga pagsunod sa gidak-on sa .form-control-lg
ug .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>
Pagsukod sa kolum
Sama sa gipakita sa miaging mga pananglitan, ang among grid system nagtugot kanimo sa pagbutang og bisan unsang gidaghanon sa .col
s sulod sa usa .row
o .form-row
. Gibahin nila ang magamit nga gilapdon nga parehas sa taliwala nila. Mahimo ka usab nga magpili usa ka subset sa imong mga kolum aron makakuha og daghang o gamay nga espasyo, samtang ang nahabilin nga .col
s parehas nga gibahin ang nahabilin, nga adunay piho nga mga klase sa kolum sama sa .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>
Auto-sizing
Ang panig-ingnan sa ubos naggamit sa usa ka flexbox utility aron patindog nga isentro ang mga sulud ug mga pagbag .col
- o .col-auto
aron ang imong mga kolum makakuha ra ug daghang espasyo kung gikinahanglan. Sa laing paagi, ang mga gidak-on sa kolum mismo base sa mga sulod.
<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>
Mahimo nimong i-remix kana pag-usab sa mga klase sa kolum nga piho sa gidak-on.
<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>
Ug siyempre gisuportahan ang naandan nga mga kontrol sa porma .
<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 nga mga porma
Gamita ang .form-inline
klase sa pagpakita og serye sa mga label, mga kontrol sa porma, ug mga buton sa usa ka pinahigda nga laray. Ang mga kontrol sa porma sulod sa inline nga mga porma magkalahi gamay gikan sa ilang mga default nga estado.
- Ang mga kontrol mao ang
display: flex
, pag-collapse sa bisan unsa nga HTML nga puti nga luna ug nagtugot kanimo sa paghatag og alignment nga kontrol uban sa spacing ug flexbox utilities. - Ang mga kontrol ug input nga mga grupo makadawat
width: auto
aron ma-override ang Bootstrap defaultwidth: 100%
. - Ang mga kontrol makita lang nga inline sa mga viewport nga labing menos 576px ang gilapdon aron i-account ang pig-ot nga viewport sa mga mobile device.
Mahimong kinahanglan nimo nga mano-mano nga sulbaron ang gilapdon ug pag-align sa indibidwal nga mga kontrol sa porma nga adunay mga gamit sa gilay-on (sama sa gipakita sa ubos). Katapusan, siguruha nga kanunay iapil ang usa <label>
sa matag kontrol sa porma, bisan kung kinahanglan nimo itago kini gikan sa mga bisita nga dili screenreader nga adunay .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>
Gisuportahan usab ang mga kontrol ug pagpili sa custom nga porma.
<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>
Mga alternatibo sa tinago nga mga label
Ang mga tabang nga teknolohiya sama sa screen readers magkaproblema sa imong mga porma kung dili ka mag-apil og label sa matag input. Alang niining mga inline nga porma, mahimo nimong tagoan ang mga label gamit ang .sr-only
klase. Adunay dugang nga alternatibong mga pamaagi sa paghatag og label para sa mga teknolohiya sa pagtabang, sama sa aria-label
, aria-labelledby
o title
attribute. Kung walay bisan usa niini, ang mga teknolohiya sa pagtabang mahimong mogamit sa placeholder
hiyas, kung naa, apan timan-i nga ang paggamit placeholder
ingon usa ka puli sa ubang mga pamaagi sa pag-label wala gitambagan.
Tabang text
Ang block-level nga tabang nga teksto sa mga porma mahimong mabuhat gamit ang .form-text
(nailhan kaniadto nga .help-block
sa v3). Ang inline nga tabang nga teksto mahimong dali nga ipatuman gamit ang bisan unsang inline nga elemento sa HTML ug mga klase sa utility sama sa .text-muted
.
Pag-apil sa tabang nga teksto sa mga kontrol sa porma
Ang teksto sa tabang kinahanglan nga klaro nga adunay kalabotan sa pagkontrol sa porma nga adunay kalabotan sa paggamit sa aria-describedby
hiyas. Kini magsiguro nga ang mga teknolohiya nga makatabang—sama sa mga tigbasa sa screen—mopahibalo niini nga teksto sa tabang kung ang tiggamit mag-focus o mosulod sa kontrol.
Ang tabang nga teksto sa ubos sa mga input mahimong i-istilo sa .form-text
. Kini nga klase naglakip display: block
ug nagdugang pipila ka taas nga margin alang sa dali nga gilay-on gikan sa mga input sa ibabaw.
<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>
Ang inline nga teksto mahimong mogamit sa bisan unsang tipikal nga inline nga HTML nga elemento (bisan kini usa ka <small>
, <span>
, o uban pa) nga wala’y labaw sa usa ka klase sa utility.
<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>
Mga disabled nga porma
Idugang ang disabled
boolean nga attribute sa usa ka input aron mapugngan ang mga interaksyon sa user ug himoon kini nga mas gaan.
<input class="form-control" id="disabledInput" type="text" placeholder="Disabled input here..." disabled>
Idugang ang disabled
hiyas sa usa <fieldset>
aron ma-disable ang tanang kontrol sa sulod.
<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>
Caveat nga adunay mga angkla
Gitratar sa mga browser ang tanan nga mga kontrol sa lumad nga porma ( <input>
, <select>
, ug <button>
mga elemento) sa sulod sa usa <fieldset disabled>
ingon nga disabled, nga nagpugong sa mga interaksyon sa keyboard ug mouse niini.
Bisan pa, kung ang imong porma naglakip usab sa naandan nga mga elemento nga sama sa butones sama sa <a ... class="btn btn-*">
, hatagan ra kini usa ka istilo nga pointer-events: none
. Ingon sa nahibal-an sa seksyon bahin sa disabled nga estado alang sa mga buton (ug espesipiko sa sub-section alang sa mga elemento sa anchor), kini nga CSS nga kabtangan wala pa gi-standardize ug dili hingpit nga gisuportahan sa Internet Explorer 10. Ang mga kontrol nga nakabase sa anchor mahimo usab focusable ug operate gamit ang keyboard. Kinahanglan nimo nga mano-mano nga usbon kini nga mga kontrol pinaagi sa pagdugang tabindex="-1"
aron mapugngan sila nga makadawat og pokus ug aria-disabled="disabled"
aron ipahibalo ang ilang estado sa mga teknolohiya nga makatabang.
Pagkaangay sa cross-browser
Samtang ang Bootstrap magamit kini nga mga istilo sa tanan nga mga browser, ang Internet Explorer 11 ug sa ubos dili hingpit nga nagsuporta sa disabled
hiyas sa usa ka <fieldset>
. Gamita ang custom JavaScript aron ma-disable ang fieldset niini nga mga browser.
Pagpamatuod
Paghatag og bililhon, maaksiyonan nga feedback sa imong mga user nga adunay HTML5 nga pag-validate sa porma– anaa sa tanan namong gisuportahan nga mga browser . Pagpili gikan sa default nga feedback sa pag-validate sa browser, o ipatuman ang naandan nga mga mensahe sa among mga built-in nga klase ug starter JavaScript.
Giunsa kini paglihok
Ania kung giunsa ang pag-validate sa porma sa Bootstrap:
- Ang pag-validate sa porma sa HTML gipadapat pinaagi sa duha ka pseudo-classes sa CSS,
:invalid
ug:valid
. Kini magamit sa<input>
,<select>
, ug<textarea>
mga elemento. - Gisangkapan sa Bootstrap ang
:invalid
ug:valid
mga istilo sa.was-validated
klase sa ginikanan, nga sagad gigamit sa<form>
. Kung dili, ang bisan unsang gikinahanglan nga field nga walay bili makita nga dili balido sa pagkarga sa panid. Niining paagiha, mahimo nimong pilion kung kanus-a kini i-aktibo (kasagaran pagkahuman gisulayan ang pagsumite sa porma). - Aron i-reset ang dagway sa porma (pananglitan, sa kaso sa dinamikong mga pagsumiter sa porma gamit ang AJAX), kuhaa ang
.was-validated
klase gikan sa<form>
pag-usab human sa pagsumite. - Isip usa ka fallback,
.is-invalid
ug.is-valid
ang mga klase mahimong gamiton imbes sa pseudo-classes para sa server side validation . Wala sila magkinahanglan og.was-validated
klase sa ginikanan. - Tungod sa mga pagpugong kung giunsa paglihok ang CSS, dili kami (sa pagkakaron) magamit ang mga istilo sa usa
<label>
nga moabut sa wala pa ang kontrol sa porma sa DOM nga wala’y tabang sa naandan nga JavaScript. - Gisuportahan sa tanang modernong browser ang constraint validation API , usa ka serye sa mga pamaagi sa JavaScript alang sa pag-validate sa mga kontrol sa porma.
- Ang mga mensahe sa feedback mahimong mogamit sa mga default sa browser (lahi alang sa matag browser, ug dili ma-estilo pinaagi sa CSS) o ang among naandan nga mga istilo sa feedback nga adunay dugang nga HTML ug CSS.
- Mahimo kang maghatag ug custom validity nga mga mensahe
setCustomValidity
sa JavaScript.
Uban niana sa hunahuna, hunahunaa ang mga mosunud nga demo para sa among naandan nga mga istilo sa pag-validate sa porma, opsyonal nga mga klase sa kilid sa server, ug mga default sa browser.
Pasadya nga mga istilo
Para sa custom Bootstrap form validation nga mga mensahe, kinahanglan nimong idugang ang novalidate
boolean attribute sa imong <form>
. Gi-disable niini ang browser default feedback tooltips, apan naghatag gihapon og access sa form validation API sa JavaScript. Sulayi nga isumite ang porma sa ubos; ang among JavaScript makapugong sa isumite nga butones ug i-relay ang feedback kanimo. Kung mosulay sa pagsumite, imong makita ang :invalid
ug :valid
mga istilo nga gipadapat sa imong mga kontrol sa porma.
Ang mga istilo sa pasadya nga feedback nag-aplay sa naandan nga mga kolor, mga utlanan, mga istilo sa pagtutok, ug mga icon sa background aron mas maayo nga makigsulti sa feedback. Ang mga icon sa background para <select>
sa s anaa lamang sa .custom-select
, ug dili .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>
Mga default sa browser
Dili interesado sa kostumbre nga mga mensahe sa feedback sa validation o pagsulat sa JavaScript aron mabag-o ang mga pamatasan sa porma? Ang tanan maayo, mahimo nimong gamiton ang mga default sa browser. Sulayi ang pagsumite sa porma sa ubos. Depende sa imong browser ug OS, makakita ka og gamay nga lahi nga estilo sa feedback.
Samtang kini nga mga istilo sa feedback dili mahimong istilo sa CSS, mahimo gihapon nimo ipasibo ang teksto sa feedback pinaagi sa JavaScript.
<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>
kilid sa server
Among girekomendar ang paggamit sa client-side validation, apan kon gikinahanglan nimo ang server-side validation, mahimo nimong ipaila ang dili balido ug balido nga mga field sa porma nga adunay .is-invalid
ug .is-valid
. Timan-i nga .invalid-feedback
gisuportahan usab kini nga mga klase.
Alang sa dili balido nga mga natad, siguroha nga ang dili balido nga feedback/error nga mensahe gilambigit sa may kalabutan nga porma nga field gamit ang aria-describedby
. Kini nga hiyas nagtugot sa labaw pa sa usa id
nga mahimong pakisayran, kung ang uma nagpunting na sa dugang nga porma nga teksto.
<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>
Gisuportahan nga mga elemento
Ang mga estilo sa pag-validate anaa alang sa mosunod nga mga kontrol sa porma ug mga sangkap:
<input>
s ug<textarea>
s uban.form-control
<select>
s uban.form-control
o.custom-select
.form-check
s.custom-checkbox
s ug.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>
Mga tooltip
Kung gitugotan kini sa imong layout sa porma, mahimo nimong ibaylo ang mga .{valid|invalid}-feedback
klase alang sa .{valid|invalid}-tooltip
mga klase aron ipakita ang feedback sa pag-validate sa usa ka istilo nga tooltip. Siguruha nga adunay usa ka ginikanan nga position: relative
naa niini alang sa pagposisyon sa tooltip. Sa panig-ingnan sa ubos, ang among mga klase sa kolum aduna na niini, apan ang imong proyekto mahimong magkinahanglan og alternatibong setup.
<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>
Pag-customize
Ang mga estado sa validation mahimong ipasibo pinaagi sa Sass gamit ang $form-validation-states
mapa. Nahimutang sa among _variables.scss
file, kini nga mapa sa Sass gi-loop aron makamugna ang default valid
/ invalid
validation nga mga estado. Lakip ang usa ka nested nga mapa alang sa pag-customize sa kolor ug icon sa matag estado. Samtang walay laing estado nga gisuportahan sa mga browser, kadtong naggamit ug custom nga mga estilo daling makadugang sa mas komplikadong porma nga feedback.
Palihug timan-i nga dili namo girekomenda ang pag-customize niini nga mga kantidad nga wala usab giusab ang form-validation-state
mixin.
// 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));
}
Pag-validate sa grupo sa input
Aron mahibal-an kung unsa nga mga elemento ang nanginahanglan mga rounded corner sa sulod sa usa ka input nga grupo nga adunay validation, usa ka input nga grupo nanginahanglan usa ka dugang .has-validation
nga klase.
<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>
Pasadya nga mga porma
Alang sa labi pa nga pag-customize ug pagkamakanunayon sa cross browser, gamita ang among hingpit nga naandan nga mga elemento sa porma aron ilisan ang mga default sa browser. Gitukod sila sa ibabaw sa semantic ug accessible nga markup, mao nga sila lig-on nga mga kapuli sa bisan unsang default nga kontrol sa porma.
Mga checkbox ug radyo
Ang matag checkbox ug radyo <input>
ug <label>
pagpares giputos sa usa <div>
aron mahimo ang among naandan nga kontrol. Sa istruktura, parehas kini nga pamaagi sa among default .form-check
.
Among gigamit ang sibling selector ( ~
) para sa tanan namong <input>
estado—sama :checked
—sa hustong paagi sa pag-istilo sa among custom nga indikasyon sa porma. Kung gihiusa sa .custom-control-label
klase, mahimo usab namon nga i-istilo ang teksto alang sa matag aytem base sa <input>
estado sa 's.
Among gitago ang default <input>
gamit opacity
ang ug gigamit ang .custom-control-label
sa paghimo og bag-ong indikasyon sa custom nga porma sa dapit niini nga adunay ::before
ug ::after
. Ikasubo nga dili kami makahimo og usa ka kostumbre gikan lamang sa <input>
tungod kay ang CSS content
dili molihok sa kana nga elemento.
Sa gisusi nga mga estado, gigamit namo ang base64 nga naka-embed nga SVG nga mga icon gikan sa Open Iconic . Naghatag kini kanamo sa labing kaayo nga kontrol alang sa pag-istilo ug pagposisyon sa mga browser ug aparato.
Mga checkbox
<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>
Ang mga custom nga checkbox mahimo usab nga mogamit sa :indeterminate
pseudo class kung mano-mano nga gitakda pinaagi sa JavaScript (walay magamit nga HTML attribute para sa pagtino niini).
Kung naggamit ka og jQuery, ang usa ka butang nga sama niini igo na:
$('.your-checkbox').prop('indeterminate', true)
Mga radyo
<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>
Inline
<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>
Nabaldado
Ang mga custom nga checkbox ug radyo mahimo usab nga ma-disable. Idugang ang disabled
boolean attribute sa <input>
ug ang custom indicator ug label nga deskripsyon awtomatik nga i-istilo.
<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>
Mga switch
Ang usa ka switch adunay marka sa usa ka custom nga checkbox apan naggamit sa .custom-switch
klase sa paghimo sa usa ka toggle switch. Gisuportahan usab sa mga switch ang disabled
attribute.
<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>
Pilia ang menu
Ang mga custom <select>
nga menu nagkinahanglan lamang ug custom nga klase, .custom-select
aron ma-trigger ang custom nga mga estilo. Gilimitahan ang mga custom nga istilo <select>
sa una nga hitsura ug dili mabag-o ang <option>
s tungod sa mga limitasyon sa browser.
<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>
Mahimo ka usab nga mopili gikan sa gagmay ug dagkong mga gipili nga kostumbre aron ipares ang among parehas nga gidak-on nga mga input sa teksto.
<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>
Gisuportahan multiple
usab ang attribute:
<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>
Sama sa size
kinaiya:
<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>
Sakop
Paghimo og custom nga <input type="range">
mga kontrol gamit ang .custom-range
. Ang track (ang background) ug thumb (ang bili) pareho nga gi-istilo aron makita nga parehas sa mga browser. Ingon nga ang IE ug Firefox ra ang nagsuporta sa "pagpuno" sa ilang track gikan sa wala o tuo sa kumagko isip usa ka paagi aron makita ang pag-uswag, wala kami karon nagsuporta niini.
<label for="customRange1">Example range</label>
<input type="range" class="custom-range" id="customRange1">
Ang mga input sa range adunay implicit nga mga kantidad alang sa min
ug max
— 0
ug 100
, matag usa. Mahimo nimong itakda ang bag-ong mga kantidad alang sa mga naggamit sa min
ug mga max
hiyas.
<label for="customRange2">Example range</label>
<input type="range" class="custom-range" min="0" max="5" id="customRange2">
Sa kasagaran, ang mga input sa range "snap" sa mga integer nga kantidad. Aron mabag-o kini, mahimo nimong itakda ang usa ka step
kantidad. Sa pananglitan sa ubos, gidoble namo ang gidaghanon sa mga lakang pinaagi sa paggamit sa step="0.5"
.
<label for="customRange3">Example range</label>
<input type="range" class="custom-range" min="0" max="5" step="0.5" id="customRange3">
File browser
Ang pag-input sa file mao ang labing katingad-an sa hugpong ug nanginahanglan dugang nga JavaScript kung gusto nimo nga i-hook kini gamit ang gamit nga Pilia ang file… ug gipili nga teksto sa ngalan sa file.
<div class="custom-file">
<input type="file" class="custom-file-input" id="customFile">
<label class="custom-file-label" for="customFile">Choose file</label>
</div>
Among gitago ang default nga file <input>
pinaagi sa opacity
ug sa baylo i-istilo ang <label>
. Ang buton gihimo ug gipahimutang sa ::after
. Katapusan, among gideklarar ang usa ka width
ug height
sa <input>
para sa hustong gilay-on alang sa naglibot nga sulod.
Paghubad o pag-customize sa mga string gamit ang SCSS
Ang :lang()
pseudo-class gigamit sa pagtugot sa paghubad sa "Browse" nga teksto ngadto sa ubang mga pinulongan. I-override o idugang ang mga entry sa $custom-file-text
variable sa Sass nga adunay tag nga lengguwahe ug gi-localize nga mga string. Ang English nga mga kuwerdas mahimong ipasibo sa samang paagi. Pananglitan, ania kung giunsa ang pagdugang usa ka paghubad sa Kinatsila (ang code sa pinulongang Espanyol mao ang es
):
$custom-file-text: (
en: "Browse",
es: "Elegir"
);
Ania ang lang(es)
aksyon sa custom file input para sa Spanish translation:
<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>
Kinahanglan nimo nga itakda ang lengguwahe sa imong dokumento (o subtree niini) sa husto aron mapakita ang husto nga teksto. Mahimo kini gamit ang lang
attribute sa <html>
elemento o ang Content-Language
HTTP header , ug uban pang mga pamaagi.
Paghubad o pag-customize sa mga string gamit ang HTML
Naghatag usab ang Bootstrap og paagi sa paghubad sa "Browse" nga teksto sa HTML nga adunay data-browse
attribute nga mahimong idugang sa custom input label (pananglitan sa Dutch):
<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>