Mifano na miongozo ya matumizi ya mitindo ya udhibiti wa fomu, chaguo za mpangilio, na vipengele maalum vya kuunda aina mbalimbali za fomu.
Muhtasari
Vidhibiti vya fomu vya Bootstrap hupanuka kwenye mitindo yetu ya fomu Iliyowashwa upya na madarasa. Tumia madarasa haya ili ujijumuishe na maonyesho yake yaliyobinafsishwa kwa uwasilishaji thabiti zaidi kwenye vivinjari na vifaa.
Hakikisha kuwa unatumia typesifa inayofaa kwenye ingizo zote (kwa mfano, emailkwa anwani ya barua pepe au numbermaelezo ya nambari) ili kunufaika na vidhibiti vipya vya ingizo kama vile uthibitishaji wa barua pepe, uteuzi wa nambari na zaidi.
Hapa kuna mfano wa haraka wa kuonyesha mitindo ya fomu ya Bootstrap. Endelea kusoma ili upate hati kuhusu madarasa yanayohitajika, mpangilio wa fomu, na zaidi.
Vidhibiti vya fomu
Vidhibiti vya umbo la maandishi—kama vile <input>s, <select>s, na <textarea>s—huwekwa kulingana na .form-controldarasa. Imejumuishwa ni mitindo ya mwonekano wa jumla, hali ya umakini, ukubwa, na zaidi.
Hakikisha umechunguza fomu zetu maalum ili kuongeza mtindo wa <select>s.
Kwa pembejeo za faili, badilisha .form-controlkwa .form-control-file.
Ukubwa
Weka urefu kwa kutumia madarasa kama .form-control-lgna .form-control-sm.
Kusoma pekee
Ongeza readonlysifa ya boolean kwenye ingizo ili kuzuia urekebishaji wa thamani ya ingizo. Ingizo za kusoma pekee huonekana nyepesi (kama vile ingizo zilizozimwa), lakini uhifadhi kishale cha kawaida.
Soma maandishi wazi pekee
Iwapo ungependa <input readonly>vipengee katika umbo lako viwe na mtindo wa maandishi wazi, tumia .form-control-plaintextdarasa kuondoa muundo wa uga wa fomu chaguo-msingi na uhifadhi ukingo sahihi na pedi.
Ingizo za Masafa
Weka pembejeo za masafa zinazoweza kusogezwa kwa mlalo kwa kutumia .form-control-range.
Visanduku vya kuteua na redio
Vikasha chaguomsingi vya kuteua na redio vinaboreshwa kwa usaidizi wa .form-check, darasa moja la aina zote mbili za ingizo ambalo huboresha mpangilio na tabia ya vipengele vyake vya HTML . Vikasha tiki ni vya kuchagua chaguo moja au kadhaa katika orodha, ilhali redio ni za kuchagua chaguo moja kutoka nyingi.
Vikasha tiki na redio vilivyozimwa vinatumika, lakini ili kutoa not-allowedkielekezi kwenye kielelezo cha mzazi <label>, utahitaji kuongeza disabledsifa kwenye .form-check-input. Sifa iliyozimwa itaweka rangi nyepesi ili kusaidia kuonyesha hali ya ingizo.
Visanduku vya kuteua na utumiaji wa redio vimeundwa ili kusaidia uthibitishaji wa fomu unaotegemea HTML na kutoa lebo fupi zinazoweza kufikiwa. Kwa hivyo, <input>s na <label>s zetu ni vipengele vya undugu kinyume na <input>ndani ya <label>. Hiki ni kitenzi zaidi kidogo kwani lazima ubainishe idna forsifa ili kuhusisha <input>na <label>.
Chaguomsingi (imerundikwa)
Kwa chaguo-msingi, idadi yoyote ya visanduku vya kuteua na redio ambazo ni ndugu wa karibu zitawekwa kwa safu wima na kupangwa ipasavyo na .form-check.
Katika mstari
Vikundi vya visanduku vya kuteua au redio kwenye safu mlalo sawa kwa kuongeza .form-check-inlinekwenye .form-check.
Bila lebo
Ongeza .position-statickwa ingizo ndani ya .form-checkhiyo hazina maandishi yoyote ya lebo. Kumbuka bado kutoa aina fulani ya lebo kwa teknolojia za usaidizi (kwa mfano, kutumia aria-label).
Mpangilio
Kwa kuwa Bootstrap inatumika display: blockna width: 100%kwa karibu vidhibiti vyetu vyote vya fomu, fomu kwa chaguo-msingi zitapangwa kiwima. Madarasa ya ziada yanaweza kutumika kubadilisha mpangilio huu kwa misingi ya kila fomu.
Vikundi vya kuunda
Darasa .form-groupndio njia rahisi zaidi ya kuongeza muundo fulani kwa fomu. Inatoa darasa linalonyumbulika ambalo linahimiza upangaji sahihi wa lebo, vidhibiti, maandishi ya usaidizi wa hiari na utumaji ujumbe wa uthibitishaji. Kwa chaguo-msingi inatumika tu margin-bottom, lakini inachukua mitindo ya ziada .form-inlineinapohitajika. Itumie na <fieldset>s, <div>s, au karibu kipengele kingine chochote.
Gridi ya fomu
Fomu ngumu zaidi zinaweza kujengwa kwa kutumia madarasa yetu ya gridi ya taifa. Tumia hizi kwa miundo ya fomu inayohitaji safu wima nyingi, upana tofauti, na chaguo za ziada za upatanishi.
Safu ya fomu
Unaweza pia kubadilisha .rowkwa .form-row, tofauti ya safu mlalo yetu ya kawaida ya gridi ambayo inabatilisha mifereji ya safu wima chaguo-msingi kwa miundo iliyobana zaidi na iliyoshikana zaidi.
Mipangilio ngumu zaidi inaweza pia kuundwa kwa mfumo wa gridi ya taifa.
Fomu ya usawa
Unda fomu za mlalo ukitumia gridi ya taifa kwa kuongeza .rowdarasa ili kuunda vikundi na kutumia .col-*-*madarasa kubainisha upana wa lebo na vidhibiti vyako. Hakikisha kuwa umeongeza .col-form-labelkwenye <label>s zako pia ili ziwe katikati wima na vidhibiti vyao vinavyohusiana vya fomu.
Wakati mwingine, labda utahitaji kutumia pambizo au huduma za kuweka pedi ili kuunda upatanishi bora unaohitaji. Kwa mfano, tumeondoa padding-toplebo ya pembejeo za redio zilizopangwa kwa rafu ili kupanga vyema msingi wa maandishi.
Upimaji wa lebo ya fomu mlalo
Hakikisha unatumia .col-form-label-smau .col-form-label-lgkwa <label>s au <legend>s zako kufuata kwa usahihi saizi ya .form-control-lgna .form-control-sm.
Upimaji wa safu wima
Kama inavyoonyeshwa katika mifano iliyotangulia, mfumo wetu wa gridi ya taifa hukuruhusu kuweka idadi yoyote ya .cols ndani ya a .rowau .form-row. Watagawanya upana unaopatikana kwa usawa kati yao. Unaweza pia kuchagua kikundi kidogo cha safu wima zako kuchukua nafasi zaidi au kidogo, huku .cols iliyobaki ikigawanya iliyosalia kwa usawa, na madarasa maalum ya safu kama .col-7.
Kuweka ukubwa kiotomatiki
Mfano ulio hapa chini hutumia matumizi ya flexbox kuweka kiwima maudhui na mabadiliko .colili .col-autosafu wima zako zichukue nafasi nyingi inavyohitajika. Weka njia nyingine, saizi ya safu yenyewe kulingana na yaliyomo.
Kisha unaweza kuichanganya tena na madarasa ya safu wima ya saizi mahususi.
Na bila shaka vidhibiti vya fomu maalum vinasaidiwa.
Fomu za ndani
Tumia .form-inlinedarasa kuonyesha mfululizo wa lebo, vidhibiti vya fomu na vitufe kwenye safu mlalo moja. Vidhibiti vya fomu ndani ya fomu za ndani hutofautiana kidogo na hali zao chaguomsingi.
Vidhibiti ni display: flex, kukunja nafasi yoyote nyeupe ya HTML na kukuruhusu kutoa udhibiti wa upatanishi kwa kutumia nafasi na huduma za flexbox .
Vidhibiti na vikundi vya ingizo hupokea width: autoili kubatilisha chaguo-msingi la Bootstrap width: 100%.
Vidhibiti huonekana tu ndani ya mstari katika maeneo ya kutazamwa ambayo yana upana wa angalau 576px ili kuchangia maeneo finyu ya kutazama kwenye vifaa vya mkononi.
Huenda ukahitaji kushughulikia upana na upangaji wa vidhibiti vya fomu binafsi kwa kutumia huduma za kuweka nafasi (kama inavyoonyeshwa hapa chini). Mwishowe, hakikisha kuwa umejumuisha <label>kila kidhibiti cha kila fomu, hata kama unahitaji kukificha kutoka kwa wageni wasiosoma skrini na .sr-only.
Vidhibiti na chaguo maalum vya fomu pia vinatumika.
Njia mbadala za lebo zilizofichwa
Teknolojia za usaidizi kama vile visoma skrini zitakuwa na shida na fomu zako ikiwa hutajumuisha lebo kwa kila ingizo. Kwa fomu hizi za ndani, unaweza kuficha lebo kwa kutumia .sr-onlydarasa. Kuna mbinu mbadala zaidi za kutoa lebo kwa teknolojia saidizi, kama vile aria-label, aria-labelledbyau titlesifa. Ikiwa hakuna kati ya hizi zilizopo, teknolojia ya usaidizi inaweza kuamua kutumia placeholdersifa, ikiwa iko, lakini kumbuka kuwa matumizi ya placeholderkama badala ya mbinu zingine za kuweka lebo hayashauriwi.
Nakala ya usaidizi
Maandishi ya usaidizi ya kiwango cha kuzuia katika fomu yanaweza kuundwa kwa kutumia .form-text(yaliyojulikana hapo awali kama .help-blockkatika v3). Maandishi ya usaidizi ya ndani yanaweza kutekelezwa kwa urahisi kwa kutumia kipengele chochote cha ndani cha HTML na madarasa ya matumizi kama vile .text-muted.
Kuhusisha maandishi ya usaidizi na vidhibiti vya fomu
Maandishi ya usaidizi yanapaswa kuhusishwa kwa uwazi na udhibiti wa fomu inayohusiana na kutumia aria-describedbysifa. Hii itahakikisha kwamba teknolojia saidizi—kama vile visoma skrini—zitatangaza maandishi haya ya usaidizi mtumiaji anapozingatia au kuingia kwenye udhibiti.
Maandishi ya usaidizi hapa chini ya ingizo yanaweza kutengenezwa kwa kutumia .form-text. Darasa hili linajumuisha display: blockna kuongeza ukingo wa juu kwa nafasi rahisi kutoka kwa ingizo hapo juu.
Nenosiri lako lazima liwe na urefu wa herufi 8-20, liwe na herufi na nambari, na lisiwe na nafasi, herufi maalum au emoji.
Maandishi ya ndani yanaweza kutumia kipengee chochote cha kawaida cha HTML (iwe <small>, <span>, au kitu kingine) bila chochote zaidi ya darasa la matumizi.
Fomu za walemavu
Ongeza disabledsifa ya boolean kwenye ingizo ili kuzuia mwingiliano wa watumiaji na kuifanya ionekane nyepesi.
Ongeza disabledsifa kwa a <fieldset>ili kuzima vidhibiti vyote ndani.
Caveat na nanga
Kwa chaguo-msingi, vivinjari vitashughulikia vidhibiti vyote vya fomu asili ( <input>, <select>na <button>vipengee) ndani <fieldset disabled>kama vilivyozimwa, na kuzuia mwingiliano wa kibodi na kipanya juu yao. Walakini, ikiwa fomu yako pia inajumuisha <a ... class="btn btn-*">vipengee, hivi vitapewa tu mtindo wa pointer-events: none. Kama ilivyobainishwa katika sehemu kuhusu hali ya vitufe vilivyozimwa (na haswa katika sehemu ndogo ya vipengee vya nanga), kipengele hiki cha CSS bado hakijasawazishwa na hakitumiki kikamilifu katika Internet Explorer 10, na haitazuia watumiaji wa kibodi kuwa. kuweza kuzingatia au kuamilisha viungo hivi. Kwa hivyo ili kuwa salama, tumia JavaScript maalum kuzima viungo kama hivyo.
Utangamano wa kivinjari
Ingawa Bootstrap itatumia mitindo hii katika vivinjari vyote, Internet Explorer 11 na chini haiauni kikamilifu disabledsifa kwenye <fieldset>. Tumia JavaScript maalum ili kuzima uga katika vivinjari hivi.
Uthibitishaji
Toa maoni muhimu na yanayoweza kutekelezeka kwa watumiaji wako kwa uthibitishaji wa fomu ya HTML5- inayopatikana katika vivinjari vyetu vyote vinavyotumika . Chagua kutoka kwa maoni ya uthibitishaji chaguomsingi wa kivinjari, au tekeleza ujumbe maalum ukitumia madarasa yetu yaliyojengewa ndani na JavaScript ya kuanzia.
Kwa sasa tunapendekeza kutumia mitindo maalum ya uthibitishaji, kwa vile ujumbe wa uthibitishaji chaguomsingi wa kivinjari hauonekani mara kwa mara kwa teknolojia ya usaidizi katika vivinjari vyote (hasa, Chrome kwenye eneo-kazi na simu).
Inavyofanya kazi
Hivi ndivyo uthibitishaji wa fomu unavyofanya kazi na Bootstrap:
Uthibitishaji wa fomu ya HTML unatumika kupitia madarasa ya uwongo ya CSS, :invalidna :valid. Inatumika kwa <input>, <select>, na <textarea>vipengele.
Bootstrap inapeana :invalidna :validmitindo kwa .was-validateddarasa la mzazi, kawaida hutumika kwa <form>. Vinginevyo, sehemu yoyote inayohitajika bila thamani itaonekana kama batili kwenye upakiaji wa ukurasa. Kwa njia hii, unaweza kuchagua wakati wa kuziwasha (kawaida baada ya kujaribu kuwasilisha fomu).
Ili kuweka upya mwonekano wa fomu (kwa mfano, katika kesi ya uwasilishaji wa fomu inayobadilika kwa kutumia AJAX), ondoa .was-validateddarasa kutoka <form>tena baada ya kuwasilisha.
Kama njia mbadala, .is-invalidna .is-validmadarasa yanaweza kutumika badala ya madarasa ya uwongo kwa uthibitishaji wa upande wa seva . Hazihitaji .was-validateddarasa la wazazi.
Kwa sababu ya vikwazo katika jinsi CSS inavyofanya kazi, hatuwezi (kwa sasa) kutumia mitindo kwa <label>ambayo huja kabla ya udhibiti wa fomu katika DOM bila usaidizi wa JavaScript maalum.
Jumbe za maoni zinaweza kutumia chaguo-msingi za kivinjari (tofauti kwa kila kivinjari, na zisizo na mtindo kupitia CSS) au mitindo yetu maalum ya maoni yenye HTML na CSS ya ziada.
Unaweza kutoa ujumbe maalum wa uhalali setCustomValiditykatika JavaScript.
Kwa kuzingatia hilo, zingatia onyesho zifuatazo za mitindo yetu ya uthibitishaji wa fomu maalum, madarasa ya upande wa seva ya hiari na chaguo-msingi za kivinjari.
Mitindo maalum
Kwa ujumbe maalum wa uthibitishaji wa fomu ya Bootstrap, utahitaji kuongeza novalidatesifa ya boolean kwenye <form>. Hii inazima vidokezo vya maoni chaguomsingi vya kivinjari, lakini bado hutoa ufikiaji wa API za uthibitishaji wa fomu katika JavaScript. Jaribu kuwasilisha fomu hapa chini; JavaScript yetu itakatiza kitufe cha kuwasilisha na kuwasilisha maoni kwako.
Unapojaribu kuwasilisha, utaona mitindo :invalidna :validvidhibiti vinavyotumika kwenye vidhibiti vya fomu yako.
Chaguo-msingi za kivinjari
Je, huvutiwi na ujumbe wa maoni ya uthibitishaji maalum au kuandika JavaScript ili kubadilisha tabia za fomu? Kila kitu kizuri, unaweza kutumia chaguo-msingi za kivinjari. Jaribu kuwasilisha fomu iliyo hapa chini. Kulingana na kivinjari chako na Mfumo wa Uendeshaji, utaona mtindo tofauti kidogo wa maoni.
Ingawa mitindo hii ya maoni haiwezi kutengenezwa kwa kutumia CSS, bado unaweza kubinafsisha maandishi ya maoni kupitia JavaScript.
Upande wa seva
Tunapendekeza utumie uthibitishaji wa upande wa mteja, lakini ikiwa utahitaji upande wa seva, unaweza kuonyesha sehemu za fomu zisizo sahihi na sahihi kwa .is-invalidna .is-valid. Kumbuka kwamba .invalid-feedbackpia inaungwa mkono na madarasa haya.
Vipengele vinavyoungwa mkono
Fomu zetu za mifano zinaonyesha maandishi asilia <input>hapo juu, lakini mitindo ya uthibitishaji wa fomu inapatikana kwa vidhibiti vyetu maalum vya fomu, pia.
Vidokezo vya zana
Ikiwa mpangilio wa fomu yako unaruhusu, unaweza kubadilisha .{valid|invalid}-feedbackmadarasa kwa .{valid|invalid}-tooltipmadarasa ili kuonyesha maoni ya uthibitishaji katika kidokezo cha mtindo. Hakikisha kuwa na mzazi position: relativejuu yake kwa nafasi ya kidokezo. Katika mfano ulio hapa chini, madarasa yetu ya safu wima tayari yana hii, lakini mradi wako unaweza kuhitaji usanidi mbadala.
Fomu maalum
Kwa ubinafsishaji zaidi na uthabiti tofauti wa kivinjari, tumia vipengee vyetu vya fomu maalum kuchukua nafasi ya chaguo-msingi za kivinjari. Zimeundwa juu ya alama za kisemantiki na zinazoweza kufikiwa, kwa hivyo ni mbadala thabiti za udhibiti wowote wa fomu chaguomsingi.
Visanduku vya kuteua na redio
Kila kisanduku cha kuteua na redio hufungwa kwa <div>pamoja na ndugu <span>ili kuunda udhibiti wetu maalum na <label>kwa maandishi yanayoambatana. Kimuundo, hii ni mbinu sawa na chaguo-msingi yetu .form-check.
Tunatumia kiteuzi cha kaka ( ~) kwa <input>majimbo yetu yote—kama :checked—kutengeneza kiashiria chetu cha fomu maalum. Ikiunganishwa na .custom-control-labeldarasa, tunaweza pia kuweka mtindo wa maandishi kwa kila kipengee kulingana na <input>hali ya '.
Tunaficha chaguo-msingi <input>na opacityna kutumia .custom-control-labelkuunda kiashiria kipya cha fomu maalum mahali pake na ::beforena ::after. Kwa bahati mbaya hatuwezi kuunda maalum kutoka kwa <input>sababu CSS contenthaifanyi kazi kwenye kipengele hicho.
Katika hali zilizowekwa alama, tunatumia ikoni za SVG zilizopachikwa base64 kutoka Open Iconic . Hii hutupatia udhibiti bora zaidi wa kuweka mitindo na uwekaji kwenye vivinjari na vifaa.
Visanduku vya kuteua
Visanduku maalum vya kuteua vinaweza pia kutumia :indeterminatedarasa bandia likiwekwa mwenyewe kupitia JavaScript (hakuna sifa ya HTML inayopatikana ya kuibainisha).
Ikiwa unatumia jQuery, kitu kama hiki kinapaswa kutosha:
Redio
Katika mstari
Imezimwa
Vikasha maalum vya kuteua na redio pia vinaweza kuzimwa. Ongeza disabledsifa ya boolean kwa <input>kiashiria maalum na maelezo ya lebo yatawekwa mtindo kiotomatiki.
Chagua menyu
Menyu maalum <select>zinahitaji tu darasa maalum, .custom-selectili kuanzisha mitindo maalum. Mitindo maalum ina mipaka ya <select>mwonekano wa awali na haiwezi kurekebisha <option>s kutokana na mapungufu ya kivinjari.
Unaweza pia kuchagua kutoka kwa chaguo ndogo na kubwa maalum ili kulinganisha maandishi yetu ya ukubwa sawa.
Sifa multiplepia inaungwa mkono:
Kama sizesifa:
Masafa
Unda <input type="range">vidhibiti maalum na .custom-range. Wimbo (usuli) na kidole gumba (thamani) zote zimeundwa ili kuonekana sawa kwenye vivinjari. Kwa vile IE na Firefox pekee ndizo zinazotumia "kujaza" wimbo wao kutoka kushoto au kulia kwa kidole gumba kama njia ya kuonyesha maendeleo, kwa sasa hatuungi mkono.
Ingizo za fungu la visanduku zina maadili kamili ya minna max- 0na 100, mtawalia. Unaweza kubainisha thamani mpya kwa wale wanaotumia minna maxsifa.
Kwa chaguo-msingi, ingizo za masafa "hupiga" hadi nambari kamili. Ili kubadilisha hii, unaweza kutaja stepthamani. Katika mfano hapa chini, tunaongeza idadi ya hatua mara mbili kwa kutumia step="0.5".
Kivinjari cha faili
Ingizo la faili ndilo gumu zaidi kati ya rundo na linahitaji JavaScript ya ziada ikiwa ungependa kuziunganisha na utendakazi Chagua faili... na maandishi yaliyochaguliwa ya jina la faili.
Tunaficha faili chaguo-msingi <input>kupitia opacityna badala yake mtindo wa <label>. Kitufe kinatolewa na kuwekwa na ::after. Hatimaye, tunatangaza a widthna heightkwenye <input>kwa nafasi sahihi ya maudhui yanayozunguka.
Kutafsiri au kubinafsisha mifuatano
Darasa la :lang()uwongo linatumika kuruhusu tafsiri ya maandishi ya "Vinjari" katika lugha zingine. Batilisha au ongeza maingizo kwa $custom-file-texttofauti ya Sass kwa lebo ya lugha husika na mifuatano iliyojanibishwa. Kamba za Kiingereza zinaweza kubinafsishwa kwa njia ile ile. Kwa mfano, hivi ndivyo mtu anaweza kuongeza tafsiri ya Kihispania (msimbo wa lugha ya Kihispania ni es):
Hapa kuna lang(es)kazi ya kuingiza faili maalum kwa tafsiri ya Kihispania:
Utahitaji kuweka lugha ya hati yako (au subtree yake) kwa usahihi ili maandishi sahihi yaonyeshwe. Hii inaweza kufanywa kwa kutumia sifa langkwenye kipengee <html>au Content-Languagekichwa cha HTTP , kati ya njia zingine.