Piemēri un lietošanas vadlīnijas veidlapu vadības stiliem, izkārtojuma opcijām un pielāgotiem komponentiem dažādu veidlapu izveidei.
Pārskats
Bootstrap veidlapu vadīklas paplašina mūsu Rebooted formu stilus ar klasēm. Izmantojiet šīs klases, lai izvēlētos to pielāgotos displejus konsekventākai atveidei visās pārlūkprogrammās un ierīcēs.
Noteikti izmantojiet atbilstošu typeatribūtu visās ievadēs (piemēram, emaile-pasta adresei vai numberskaitliskai informācijai), lai izmantotu jaunākas ievades vadīklas, piemēram, e-pasta verifikāciju, numura atlasi un citus.
Šeit ir īss piemērs Bootstrap veidlapu stilu demonstrēšanai. Turpiniet lasīt, lai iegūtu dokumentāciju par nepieciešamajām klasēm, veidlapu izkārtojumu un daudz ko citu.
Veidlapu vadīklas
Teksta formas vadīklas, piemēram <input>, s, <select>s un <textarea>s, ir veidotas atbilstoši .form-controlklasei. Iekļauti stili vispārējam izskatam, fokusa stāvoklim, izmēram un citiem.
Failu ievadei nomainiet vērtību .form-controlpret .form-control-file.
Izmēru noteikšana
Iestatiet augstumus, izmantojot tādas klases kā .form-control-lgun .form-control-sm.
Tikai lasīt
Pievienojiet readonlyievadei Būla atribūtu, lai novērstu ievades vērtības izmaiņas. Tikai lasāmās ievades šķiet gaišākas (tāpat kā atspējotas ievades), bet saglabā standarta kursoru.
Tikai lasāms vienkāršs teksts
Ja vēlaties, lai <input readonly>elementi veidlapā tiktu veidoti kā vienkāršs teksts, izmantojiet .form-control-plaintextklasi, lai noņemtu noklusējuma veidlapas lauka stilu un saglabātu pareizo piemaļu un polsterējumu.
Diapazona ieejas
Iestatiet horizontāli ritināmas diapazona ievades, izmantojot .form-control-range.
Izvēles rūtiņas un radio
Noklusējuma izvēles rūtiņas un radiouztvērēji tiek uzlaboti .form-check, izmantojot vienu klasi abiem ievades veidiem, kas uzlabo to HTML elementu izkārtojumu un darbību . Izvēles rūtiņas ir paredzētas, lai sarakstā atlasītu vienu vai vairākas opcijas, savukārt radio ir paredzētas vienas opcijas atlasei no daudzām.
Tiek atbalstītas atspējotās izvēles rūtiņas un radio. Atribūts disabledizmantos gaišāku krāsu, lai palīdzētu norādīt ievades stāvokli.
Izvēles rūtiņas un radio pogas atbalsta uz HTML balstītu veidlapu validāciju un nodrošina kodolīgas, pieejamas etiķetes. Tādējādi mūsu <input>s un s ir brāļu un māsu elementi , <label>nevis iekšējie elementi . Tas ir nedaudz detalizētāks, jo jums ir jānorāda un atribūti, lai saistītu ar un .<input><label>idfor<input><label>
Noklusējums (stacked)
Pēc noklusējuma jebkurš izvēles rūtiņu un radioaparātu skaits, kas ir tiešās brālis, tiks novietoti vertikāli un atbilstoši izvietoti ar .form-check.
Rindā
Grupējiet izvēles rūtiņas vai radio vienā un tajā pašā horizontālajā rindā, pievienojot .form-check-inlinejebkurai .form-check.
Bez etiķetēm
Pievienot .position-staticievadēm, .form-checkkurām nav etiķetes teksta. Atcerieties nodrošināt kādu palīgtehnoloģiju etiķeti (piemēram, izmantojot aria-label).
Izkārtojums
Tā kā Bootstrap tiek lietots display: blockun width: 100%gandrīz visām mūsu veidlapu vadīklām, veidlapas pēc noklusējuma tiks krautas vertikāli. Papildu klases var izmantot, lai mainītu šo izkārtojumu atkarībā no veidlapas.
Veidojiet grupas
Klase .form-groupir vienkāršākais veids, kā veidlapām pievienot kādu struktūru. Tā nodrošina elastīgu klasi, kas mudina pareizi grupēt etiķetes, vadīklas, izvēles palīdzības tekstu un veidlapas validācijas ziņojumus. Pēc noklusējuma tas attiecas tikai uz margin-bottom, taču pēc .form-inlinevajadzības tiek atlasīti papildu stili. Izmantojiet to ar <fieldset>s, <div>s vai gandrīz jebkuru citu elementu.
Veidlapas režģis
Sarežģītākas formas var izveidot, izmantojot mūsu režģa klases. Izmantojiet tos veidlapu izkārtojumiem, kuriem nepieciešamas vairākas kolonnas, dažādi platumi un papildu līdzināšanas opcijas.
Veidlapas rinda
Varat arī apmainīt .rowpret .form-row, mūsu standarta režģa rindas variantu, kas ignorē noklusējuma kolonnu notekas, lai iegūtu stingrākus un kompaktākus izkārtojumus.
Ar režģa sistēmu var izveidot arī sarežģītākus izkārtojumus.
Horizontālā forma
Izveidojiet horizontālas veidlapas ar režģi, pievienojot .rowklasi grupām un izmantojot .col-*-*klases, lai norādītu iezīmju un vadīklu platumu. Noteikti pievienojiet .col-form-labelarī savas <label>s, lai tās būtu vertikāli centrētas ar tām saistītajām veidlapu vadīklām.
Reizēm jums, iespējams, ir jāizmanto piemaļu vai polsterējuma utilītas, lai izveidotu vajadzīgo perfekto līdzinājumu. Piemēram, mēs esam noņēmuši padding-topno mūsu salikto radio ievades etiķetes, lai labāk saskaņotu teksta pamatlīniju.
Horizontālās formas etiķetes izmēru noteikšana
Noteikti izmantojiet .col-form-label-smvai .col-form-label-lgsavam <label>s vai s, lai pareizi ievērotu un <legend>izmēru ..form-control-lg.form-control-sm
Kolonnu izmēra noteikšana
Kā parādīts iepriekšējos piemēros, mūsu režģa sistēma ļauj ievietot jebkuru .cols skaitu a .rowvai .form-row. Viņi sadalīs pieejamo platumu vienādi. Varat arī izvēlēties sleju apakškopu, lai tā aizņemtu vairāk vai mazāk vietas, bet atlikušās .cols vienādi sadala pārējās, izmantojot noteiktas kolonnu klases, piemēram, .col-7.
Automātiska izmēra noteikšana
Tālāk sniegtajā piemērā tiek izmantota flexbox utilīta, lai vertikāli centrētu saturu un mainītu tā, .collai .col-autokolonnas aizņemtu tikai tik daudz vietas, cik nepieciešams. Citiem vārdiem sakot, kolonnas izmērs tiek noteikts atkarībā no satura.
Pēc tam varat to vēlreiz sajaukt ar lieluma kolonnu klasēm.
Izmantojiet .form-inlineklasi, lai vienā horizontālā rindā parādītu vairākas etiķetes, veidlapas vadīklas un pogas. Veidlapu vadīklas iekļautajās veidlapās nedaudz atšķiras no to noklusējuma stāvokļiem.
Vadīklas ir display: flex, sakļaujot jebkuru HTML balto atstarpi un ļaujot nodrošināt līdzinājuma kontroli ar atstarpēm un flexbox utilītiem.
Vadīklas un ievades grupas saņem width: auto, lai ignorētu Bootstrap noklusējuma iestatījumus width: 100%.
Vadības elementi tiek rādīti iekļauti tikai tajos skatu laukos, kuru platums ir vismaz 576 pikseļi , lai ņemtu vērā šauros skatu logus mobilajās ierīcēs.
Iespējams, jums būs manuāli jārisina atsevišķu veidlapu vadīklu platums un līdzinājums, izmantojot atstarpju utilītus (kā parādīts tālāk). Visbeidzot, katrā veidlapas vadīklā vienmēr iekļaujiet <label>simbolu, pat ja vēlaties to paslēpt no apmeklētājiem, kuri nav ekrāna lasītāji, izmantojot .sr-only.
Tiek atbalstītas arī pielāgotas veidlapas vadīklas un atlases.
Alternatīvas slēptajām etiķetēm
Palīgtehnoloģijām, piemēram, ekrāna lasītājiem, būs problēmas ar jūsu veidlapām, ja katrai ievadei neiekļausiet etiķeti. Šo iekļauto veidlapu etiķetes varat paslēpt, izmantojot .sr-onlyklasi. Ir arī citas alternatīvas metodes, kā nodrošināt marķējumu palīgtehnoloģijām, piemēram, aria-label, aria-labelledbyvai titleatribūts. Ja neviena no tām nav, palīgtehnoloģijas var izmantot placeholderatribūtu, ja tāds ir, taču ņemiet vērā, ka placeholdernav ieteicams to izmantot kā citu marķēšanas metožu aizstājēju.
Palīdzības teksts
Bloka līmeņa palīdzības tekstu veidlapās var izveidot, izmantojot .form-text(iepriekš zināms kā .help-blockv3). Iekļauto palīdzības tekstu var elastīgi ieviest, izmantojot jebkuru iekļauto HTML elementu un utilītu klases, piemēram, .text-muted.
Palīdzības teksta saistīšana ar veidlapas vadīklām
Palīdzības tekstam jābūt skaidri saistītam ar formas vadīklu, kas ir saistīta ar aria-describedbyatribūta lietošanu. Tas nodrošinās, ka palīgtehnoloģijas, piemēram, ekrāna lasītāji, paziņos šo palīdzības tekstu, kad lietotājs fokusēsies vai ievadīs vadīklu.
Palīdzības tekstu zem ievades var veidot ar .form-text. Šī klase ietver display: blockun pievieno dažas augšējās piemales, lai atvieglotu atstarpi no iepriekš norādītajām ievadēm.
Jūsu parolei ir jābūt 8–20 rakstzīmes garai, tajā nedrīkst būt burti un cipari, un tajā nedrīkst būt atstarpes, speciālās rakstzīmes vai emocijzīmes.
Iekļautajā tekstā var izmantot jebkuru tipisku iekļauto HTML elementu (vai tas būtu <small>, <span>, vai kaut kas cits) ar lietderības klasi.
Invalīdu formas
Pievienojiet disabledievadei Būla atribūtu, lai novērstu lietotāja mijiedarbību un padarītu to gaišāku.
Pievienojiet disabledatribūtu a <fieldset>, lai atspējotu visas vadīklas.
Brīdinājums ar enkuriem
<input>Pēc noklusējuma pārlūkprogrammas visas vietējās veidlapas vadīklas ( un elementus) apstrādās <select>kā atspējotas, novēršot gan tastatūras, gan peles mijiedarbību. Tomēr, ja jūsu veidlapā ir iekļauti arī elementi, tiem tiks piešķirts tikai stils . Kā norādīts sadaļā par pogu atspējošanas stāvokli (un īpaši enkura elementu apakšsadaļā), šis CSS rekvizīts vēl nav standartizēts un nav pilnībā atbalstīts pārlūkprogrammā Internet Explorer 10, un tas neliedz tastatūras lietotājiem var fokusēt vai aktivizēt šīs saites. Tāpēc drošības labad izmantojiet pielāgotu JavaScript, lai atspējotu šādas saites.<button><fieldset disabled><a ... class="btn btn-*">pointer-events: none
Saderība starp pārlūkprogrammām
Lai gan Bootstrap lietos šos stilus visās pārlūkprogrammās, pārlūkprogramma Internet Explorer 11 un vecākas versijas pilnībā neatbalsta disabledatribūtu <fieldset>. Izmantojiet pielāgotu JavaScript, lai atspējotu lauku kopu šajās pārlūkprogrammās.
Validācija
Sniedziet lietotājiem vērtīgas, praktiskas atsauksmes, izmantojot HTML5 veidlapu validāciju — tā ir pieejama visās mūsu atbalstītajās pārlūkprogrammās . Izvēlieties kādu no pārlūkprogrammas noklusējuma validācijas atsauksmēm vai ieviesiet pielāgotus ziņojumus, izmantojot mūsu iebūvētās klases un iesācēju JavaScript.
Pašlaik mēs iesakām izmantot pielāgotus validācijas stilus, jo vietējās pārlūkprogrammas noklusējuma validācijas ziņojumi netiek konsekventi pakļauti palīgtehnoloģijām visās pārlūkprogrammās (jo īpaši Chrome datoros un mobilajās ierīcēs).
Kā tas strādā
Lūk, kā veidlapu validācija darbojas ar Bootstrap:
HTML veidlapas validācija tiek lietota, izmantojot divas CSS pseidoklases :invalidun :valid. Tas attiecas uz <input>, <select>un <textarea>elementiem.
Bootstrap aptver :invalidun :validstilus uz vecāku .was-validatedklasi, kas parasti tiek lietots <form>. Pretējā gadījumā jebkurš obligātais lauks bez vērtības lapas ielādes laikā tiek rādīts kā nederīgs. Tādā veidā jūs varat izvēlēties, kad tās aktivizēt (parasti pēc veidlapas iesniegšanas mēģinājuma).
Lai atiestatītu veidlapas izskatu (piemēram, dinamisku veidlapu iesniegšanas gadījumā, izmantojot AJAX), pēc iesniegšanas vēlreiz noņemiet .was-validatedklasi no veidlapas.<form>
Kā rezerves, .is-invalidun .is-validklases var izmantot pseidoklases vietā servera puses validācijai . Viņiem nav nepieciešama .was-validatedvecāku klase.
CSS darbības ierobežojumu dēļ mēs (pašlaik) nevaram lietot stilus, <label>kas atrodas pirms veidlapas vadīklas DOM, neizmantojot pielāgotu JavaScript.
Visas mūsdienu pārlūkprogrammas atbalsta ierobežojumu validācijas API — JavaScript metožu sēriju veidlapu vadīklu apstiprināšanai.
Atsauksmju ziņojumos var tikt izmantoti pārlūkprogrammas noklusējuma iestatījumi (atšķirīgi katrā pārlūkprogrammā un nav stilizēti, izmantojot CSS) vai mūsu pielāgotie atsauksmju stili ar papildu HTML un CSS.
Varat nodrošināt pielāgotus derīguma ziņojumus ar setCustomValidityJavaScript.
Paturot to prātā, apsveriet tālāk norādītās demonstrācijas par mūsu pielāgotajiem veidlapu validācijas stiliem, papildu servera sānu klasēm un pārlūkprogrammas noklusējuma iestatījumiem.
Pielāgoti stili
Pielāgotiem Bootstrap veidlapas validācijas ziņojumiem jums būs jāpievieno novalidateBūla atribūts savam <form>. Tādējādi tiek atspējoti pārlūkprogrammas noklusējuma atsauksmju rīka padomi, taču joprojām tiek nodrošināta piekļuve veidlapu validācijas API JavaScript. Mēģiniet iesniegt zemāk esošo veidlapu; mūsu JavaScript pārtvers iesniegšanas pogu un nosūtīs jums atsauksmes. Mēģinot iesniegt, jūs redzēsit veidlapas vadīklām piemērotos stilus :invalidun .:valid
Pielāgotie atsauksmju stili izmanto pielāgotas krāsas, apmales, fokusa stilus un fona ikonas, lai labāk sniegtu atsauksmes. Fona ikonas priekš <select>s ir pieejamas tikai ar .custom-select, bet ne .form-control.
Pārlūka noklusējuma iestatījumi
Vai neinteresē pielāgotas validācijas atgriezeniskās saites ziņojumi vai JavaScript rakstīšana, lai mainītu veidlapas darbību? Viss kārtībā, varat izmantot pārlūkprogrammas noklusējuma iestatījumus. Mēģiniet iesniegt zemāk esošo veidlapu. Atkarībā no pārlūkprogrammas un operētājsistēmas jūs redzēsit nedaudz atšķirīgu atsauksmju stilu.
Lai gan šos atsauksmju stilus nevar veidot ar CSS, jūs joprojām varat pielāgot atsauksmju tekstu, izmantojot JavaScript.
Servera puse
Mēs iesakām izmantot klienta puses validāciju, taču, ja nepieciešama servera puses validācija, nederīgos un derīgos veidlapas laukus varat norādīt ar .is-invalidun .is-valid. Ņemiet vērā, ka .invalid-feedbacktas tiek atbalstīts arī šajās klasēs.
Atbalstītie elementi
Validācijas stili ir pieejami šādām veidlapas vadīklām un komponentiem:
<input>s un <textarea>s ar .form-control(ieskaitot līdz vienam .form-controlievades grupās)
<select>s ar .form-controlvai.custom-select
.form-checks
.custom-checkboxs un .custom-radios
.custom-file
Rīku padomi
Ja jūsu veidlapas izkārtojums to atļauj, varat apmainīt .{valid|invalid}-feedbackklases pret .{valid|invalid}-tooltipklasēm, lai parādītu validācijas atsauksmes stila rīka padomos. position: relativeRīka padoma pozicionēšanai noteikti ir jābūt kādam no vecākiem . Tālāk esošajā piemērā mūsu kolonnu klasēs tas jau ir, taču jūsu projektam var būt nepieciešama alternatīva iestatīšana.
Pielāgošana
Validācijas stāvokļus var pielāgot, izmantojot Sass ar $form-validation-stateskarti. Šī Sass karte atrodas mūsu _variables.scssfailā, un tā tiek cilāta, lai ģenerētu noklusējuma valid/ invalidvalidācijas stāvokļus. Iekļauts ir ligzdots karte katras valsts krāsas un ikonas pielāgošanai. Lai gan pārlūkprogrammas neatbalsta citus stāvokļus, tie, kas izmanto pielāgotus stilus, var viegli pievienot sarežģītākas veidlapas atsauksmes.
Lūdzu, ņemiet vērā, ka mēs neiesakām pielāgot šīs vērtības, nepārveidojot arī form-validation-statemixin.
Pielāgotas veidlapas
Lai nodrošinātu vēl lielāku pielāgošanu un vairāku pārlūkprogrammu konsekvenci, izmantojiet mūsu pilnībā pielāgotos veidlapas elementus, lai aizstātu pārlūkprogrammas noklusējuma iestatījumus. Tie ir veidoti, pamatojoties uz semantisku un pieejamu marķējumu, tāpēc tie lieliski aizstāj jebkuru noklusējuma veidlapu vadīklu.
Izvēles rūtiņas un radio
Katra izvēles rūtiņa un radio <input>un <label>savienošana pārī ir iesaiņota, <div>lai izveidotu mūsu pielāgoto vadīklu. Strukturāli šī ir tāda pati pieeja kā mūsu noklusējuma pieeja .form-check.
Mēs izmantojam brāļa atlasītāju ( ~) visiem mūsu <input>stāvokļiem, piemēram, :checkedlai pareizi izveidotu pielāgotās veidlapas indikatoru. Apvienojot ar .custom-control-labelklasi, mēs varam arī veidot katra vienuma teksta stilu, pamatojoties uz statusu <input>.
Mēs slēpjam noklusējuma vērtību <input>ar opacityun izmantojam, .custom-control-labellai tā vietā izveidotu jaunu pielāgotas formas indikatoru ar ::beforeun ::after. Diemžēl mēs nevaram izveidot pielāgotu elementu tikai no šī elementa, <input>jo CSS contentnedarbojas ar šo elementu.
Atzīmētajos stāvokļos mēs izmantojam base64 iegultās SVG ikonas no Open Iconic . Tādējādi mēs varam vislabāk kontrolēt stilu un pozicionēšanu dažādās pārlūkprogrammās un ierīcēs.
izvēles rūtiņas
Pielāgotās izvēles rūtiņas var izmantot arī :indeterminatepseidoklasi, ja tās ir manuāli iestatītas, izmantojot JavaScript (nav pieejams HTML atribūts, lai to norādītu).
Ja izmantojat jQuery, vajadzētu pietikt ar kaut ko līdzīgu:
Radioaparāti
Rindā
Atspējots
Var atspējot arī pielāgotās izvēles rūtiņas un radio. Pievienojiet disabledBūla atribūtu, <input>un pielāgotais indikators un etiķetes apraksts tiks automātiski veidoti.
Slēdži
Slēdžam ir pielāgotas izvēles rūtiņas atzīme, bet tas izmanto .custom-switchklasi, lai renderētu pārslēgšanas slēdzi. Slēdži arī atbalsta disabledatribūtu.
Izvēlieties izvēlni
Pielāgotajām <select>izvēlnēm ir nepieciešama tikai pielāgota klase, .custom-selectlai aktivizētu pielāgotos stilus. Pielāgotie stili ir ierobežoti ar sākotnējo izskatu, un pārlūkprogrammas ierobežojumu dēļ tos <select>nevar mainīt .<option>
Varat arī izvēlēties no maziem un lieliem pielāgotajiem atlases veidiem, lai tie atbilstu mūsu līdzīgā izmēra teksta ievadei.
Tiek multipleatbalstīts arī atribūts:
Tāpat kā sizeatribūts:
Diapazons
Izveidojiet pielāgotas <input type="range">vadīklas, izmantojot .custom-range. Ieraksts (fons) un īkšķis (vērtība) ir veidoti tā, lai visās pārlūkprogrammās būtu vienādi. Tā kā tikai IE un Firefox atbalsta celiņa “aizpildīšanu” no īkšķa kreisās vai labās puses, lai vizuāli norādītu progresu, mēs to pašlaik neatbalstām.
Diapazona ievadiem ir netiešas vērtības attiecīgi minun max— 0un 100. Varat norādīt jaunas vērtības tiem, kas izmanto minun maxatribūtus.
Pēc noklusējuma diapazona ievades tiek “pieslēgtas” veselām vērtībām. Lai to mainītu, varat norādīt stepvērtību. Tālāk esošajā piemērā mēs dubultojam soļu skaitu, izmantojot step="0.5".
Failu pārlūkprogramma
Ieteicamais spraudnis pielāgotas faila ievades animēšanai: bs-custom-file-input , to mēs pašlaik izmantojam savos dokumentos.
Faila ievade ir visizplatītākā, un tai ir nepieciešams papildu JavaScript, ja vēlaties tos savienot ar funkcionālu Izvēlēties failu… un atlasītā faila nosaukuma tekstu.
Mēs slēpjam noklusējuma failu <input>, izmantojot opacityun tā vietā veidojam <label>. Poga tiek ģenerēta un novietota ar ::after. Visbeidzot, mēs paziņojam widthpar heightpareizu <input>atstarpi apkārtējam saturam.
Virkņu tulkošana vai pielāgošana, izmantojot SCSS
Pseidoklase :lang()tiek izmantota, lai “Pārlūkot” tekstu varētu tulkot citās valodās. Ignorēt vai pievienot $custom-file-textSass mainīgā ierakstus ar atbilstošo valodas tagu un lokalizētām virknēm. Angļu valodas stīgas var pielāgot tādā pašā veidā. Piemēram, šādi var pievienot tulkojumu spāņu valodā (spāņu valodas kods ir es):
Lūk lang(es), kā pielāgotā faila ievade spāņu valodas tulkojumam:
Lai tiktu parādīts pareizais teksts, jums ir pareizi jāiestata sava dokumenta (vai tā apakškoka) valoda. To var izdarīt, izmantojot elementa atribūtu langvai<html> HTTP Content-Languagegalveni , kā arī citas metodes.
Virkņu tulkošana vai pielāgošana, izmantojot HTML
Bootstrap nodrošina arī veidu, kā tulkot tekstu “Pārlūkot” HTML valodā ar data-browseatribūtu, ko var pievienot pielāgotajai ievades etiķetei (piemērs holandiešu valodā):