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 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 typenga kinaiya sa tanan nga mga input (pananglitan, emailalang sa email address o numberalang 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.
Mga kontrol sa porma
Ang mga kontrol sa porma sa teksto—sama <input>sa s, <select>s, ug <textarea>s—gi-istilo sa .form-controlklase. 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 aron madugangan ang istilo <select>.
Para sa mga input sa file, ibaylo ang .form-controlpara sa .form-control-file.
Pagsukod
Itakda ang mga gitas-on gamit ang mga klase sama sa .form-control-lgug .form-control-sm.
Basaha ra
Idugang ang readonlyboolean 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.
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-plaintextklase aron tangtangon ang default nga pag-istilo sa field sa porma ug ipreserba ang husto nga margin ug padding.
Range Inputs
Itakda ang horizontally scrollable range inputs gamit ang .form-control-range.
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 disabledhiyas 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 idug formga hiyas sa pag-asoy sa <input>ug <label>.
Default (stacked)
Sa kasagaran, ang bisan unsang gidaghanon sa mga checkbox ug radyo nga igsoon diha-diha dayon ibutang nga patindog ug haom nga ibutang sa .form-check.
Inline
Grupo ang mga checkbox o radyo sa parehas nga pinahigda nga laray pinaagi sa pagdugang .form-check-inlinesa bisan unsang .form-check.
Walay mga label
Idugang .position-staticsa mga input sa sulod .form-checknga walay bisan unsang label nga teksto. Hinumdumi nga maghatag gihapon og pipila ka matang sa label para sa mga teknolohiya nga makatabang (pananglitan, gamit ang aria-label).
Layout
Tungod kay ang Bootstrap magamit display: blockug 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-groupklase 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-inlinekon gikinahanglan. Gamita kini sa <fieldset>s, <div>s, o halos bisan unsang elemento.
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.
Porma nga laray
Mahimo ka usab nga magbaylo .rowog .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.
Ang mas komplikado nga mga layout mahimo usab nga mahimo gamit ang grid system.
Horizontal nga porma
Paghimo og pinahigda nga mga porma nga adunay grid pinaagi sa pagdugang sa .rowklase 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-labelusab 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-toplabel sa among stacked radio inputs aron mas maayo nga i-align ang text baseline.
Horizontal nga porma nga pagsukod sa label
Siguroha nga gamiton .col-form-label-smo .col-form-label-lgsa imong <label>s o <legend>s sa husto nga pagsunod sa gidak-on sa .form-control-lgug .form-control-sm.
Pagsukod sa kolum
Sama sa gipakita sa miaging mga pananglitan, ang among grid system nagtugot kanimo sa pagbutang sa bisan unsang gidaghanon sa .cols sulod sa usa .rowo .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 .cols parehas nga gibahin ang nahabilin, nga adunay piho nga mga klase sa kolum sama sa .col-7.
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-autoaron 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.
Mahimo nimong i-remix kana pag-usab sa mga klase sa kolum nga piho sa gidak-on.
Gamita ang .form-inlineklase 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: autoaron i-override ang Bootstrap default width: 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.
Gisuportahan usab ang mga kontrol ug pagpili sa custom nga porma.
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-onlyklase. Adunay dugang nga alternatibong mga pamaagi sa paghatag og label para sa mga teknolohiya sa pagtabang, sama sa aria-label, aria-labelledbyo titleattribute. Kung walay bisan usa niini, ang mga teknolohiya sa pagtabang mahimong mogamit sa placeholderhiyas, kung naa, apan timan-i nga ang paggamit placeholderingon 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-blocksa 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-asoy 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-describedbyhiyas. 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: blockug nagdugang pipila ka taas nga margin alang sa dali nga gilay-on gikan sa mga input sa ibabaw.
Ang imong password kinahanglan nga 8-20 ka karakter ang gitas-on, adunay mga letra ug numero, ug kinahanglan dili adunay mga espasyo, espesyal nga karakter, o emoji.
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.
Mga disabled nga porma
Idugang ang disabledboolean nga attribute sa usa ka input aron mapugngan ang mga interaksyon sa user ug himoon kini nga mas gaan.
Idugang ang disabledhiyas sa usa <fieldset>aron ma-disable ang tanang kontrol sa sulod.
Caveat nga adunay mga angkla
Sa kasagaran, ang mga browser motratar sa tanang lumad nga mga kontrol sa porma ( <input>, <select>ug <button>mga elemento) sulod sa a <fieldset disabled>ingon nga disabled, nga magpugong sa keyboard ug mouse nga interaksyon niini. Bisan pa, kung ang imong porma naglakip usab sa <a ... class="btn btn-*">mga elemento, kini hatagan lamang usa ka istilo sa pointer-events: none. Ingon sa nahibal-an sa seksyon bahin sa disabled nga estado alang sa mga buton (ug labi na sa sub-section alang sa mga elemento sa angkla), kini nga CSS nga propyedad wala pa gi-standardize ug dili hingpit nga gisuportahan sa Internet Explorer 10, ug dili makapugong sa mga tiggamit sa keyboard nga mahimong. makahimo sa pag-focus o pagpaaktibo niini nga mga link. Busa aron luwas, gamita ang custom JavaScript aron ma-disable ang maong mga link.
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 disabledhiyas 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.
Sa pagkakaron among girekomendar ang paggamit sa custom nga mga estilo sa pag-validate, tungod kay ang lumad nga browser default nga mga mensahe sa validation dili kanunay nga na-expose sa mga assistive technologies sa tanang browser (labi na, Chrome sa desktop ug mobile).
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, :invalidug :valid. Kini magamit sa <input>, <select>, ug <textarea>mga elemento.
Gisangkapan sa Bootstrap ang :invalidug :validmga istilo sa .was-validatedklase 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-validatedklase gikan sa <form>pag-usab human sa pagsumite.
Isip usa ka fallback, .is-invalidug .is-validang mga klase mahimong gamiton imbes nga ang pseudo-classes para sa server side validation . Wala sila magkinahanglan og .was-validatedklase 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 setCustomValiditysa 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 novalidateboolean 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 :invalidug :validmga 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.
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 istilo 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.
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-invalidug .is-valid. Timan-i nga .invalid-feedbackgisuportahan usab kini nga mga klase.
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 nga adunay .form-control(lakip ang hangtod sa usa .form-controlsa mga grupo sa input)
<select>s uban .form-controlo.custom-select
.form-checks
.custom-checkboxs ug .custom-radios
.custom-file
Mga tooltip
Kung gitugotan kini sa imong layout sa porma, mahimo nimong ibaylo ang mga .{valid|invalid}-feedbackklase alang sa .{valid|invalid}-tooltipmga klase aron ipakita ang feedback sa pag-validate sa usa ka istilo nga tooltip. Siguruha nga adunay usa ka ginikanan nga position: relativenaa niini alang sa pagposisyon sa tooltip. Sa pananglitan sa ubos, ang among mga klase sa kolum aduna na niini, apan ang imong proyekto mahimong magkinahanglan og alternatibong setup.
Pag-customize
Ang mga estado sa validation mahimong ipasibo pinaagi sa Sass gamit ang $form-validation-statesmapa. Nahimutang sa among _variables.scssfile, kini nga mapa sa Sass gi-loop aron makamugna ang default valid/ invalidvalidation 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 ang 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-statemixin.
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-labelklase, mahimo usab namon nga i-istilo ang teksto alang sa matag aytem base sa <input>estado sa 's.
Among gitago ang default <input>gamit opacityang ug gigamit ang .custom-control-labelsa paghimo og bag-ong indikasyon sa custom nga porma sa dapit niini nga adunay ::beforeug ::after. Ikasubo nga dili kami makahimo og usa ka kostumbre gikan lamang sa <input>tungod kay ang CSS contentdili 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
Ang mga custom nga checkbox mahimo usab nga mogamit sa :indeterminatepseudo 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:
Mga radyo
Inline
Nabaldado
Ang mga custom nga checkbox ug radyo mahimo usab nga ma-disable. Idugang ang disabledboolean attribute sa <input>ug ang custom indicator ug label nga deskripsyon awtomatik nga i-istilo.
Mga switch
Ang usa ka switch adunay marka sa usa ka custom nga checkbox apan naggamit sa .custom-switchklase sa paghimo sa usa ka toggle switch. Gisuportahan usab sa mga switch ang disabledattribute.
Pilia ang menu
Ang mga custom <select>nga menu nagkinahanglan lamang ug custom nga klase, .custom-selectaron 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.
Mahimo ka usab nga mopili gikan sa gagmay ug dagkong mga gipili nga kostumbre aron ipares ang among parehas nga kadako nga mga input sa teksto.
Gisuportahan multipleusab ang attribute:
Sama sa sizekinaiya:
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.
Ang mga input sa range adunay implicit nga mga kantidad alang sa minug max— 0ug 100, matag usa. Mahimo nimong itakda ang bag-ong mga kantidad alang sa mga naggamit sa minug mga maxhiyas.
Sa kasagaran, ang mga input sa range "snap" sa mga integer nga kantidad. Aron mabag-o kini, mahimo nimong itakda ang usa ka stepkantidad. Sa pananglitan sa ubos, gidoble namo ang gidaghanon sa mga lakang pinaagi sa paggamit sa step="0.5".
File browser
Ang girekomendar nga plugin aron ma-animate ang custom file input: bs-custom-file-input , mao kana ang among gigamit karon dinhi sa among mga doc.
Ang pag-input sa file mao ang labing katingad-an sa hugpong ug nanginahanglan dugang nga JavaScript kung gusto nimo i-hook up kini gamit ang gamit nga Pilia ang file… ug gipili nga teksto sa ngalan sa file.
Among gitago ang default nga file <input>pinaagi sa opacityug sa baylo i-istilo ang <label>. Ang buton gihimo ug gipahimutang sa ::after. Katapusan, among gideklarar ang usa ka widthug heightsa <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-textvariable 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):
Ania ang lang(es)aksyon sa custom file input para sa Spanish translation:
Kinahanglan nimo nga itakda ang lengguwahe sa imong dokumento (o subtree niini) sa husto aron mapakita ang husto nga teksto. Mahimo kini gamit ang langattribute sa <html>elemento o ang Content-LanguageHTTP 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-browseattribute nga mahimong idugang sa custom input label (pananglitan sa Dutch):