Formularer

Eksempler og retningslinjer for brug af formkontrolformater, layoutindstillinger og brugerdefinerede komponenter til oprettelse af en lang række former.

Oversigt

Bootstraps formkontroller udvider vores genstartede formstilarter med klasser. Brug disse klasser til at vælge deres tilpassede skærme til en mere ensartet gengivelse på tværs af browsere og enheder.

Sørg for at bruge en passende type -attribut på alle indgange (f.eks. , email for e-mail-adresse eller number for numerisk information) for at drage fordel af nyere inputkontroller som e-mail-verifikation, nummervalg og mere.

Her er et hurtigt eksempel for at demonstrere Bootstraps formstile. Fortsæt med at læse for dokumentation om krævede klasser, formularlayout og mere.

Formularkontrol

Sørg for at udforske vores brugerdefinerede formularer til yderligere stil <select> s.

For filinput skal du bytte .form-control til .form-control-file.

Størrelse

Indstil højder ved hjælp af klasser som .form-control-lg og .form-control-sm.

Skrivebeskyttet

Tilføj readonly boolsk attribut på et input for at forhindre ændring af inputets værdi. Skrivebeskyttede indgange ser lysere ud (ligesom deaktiverede indgange), men bevarer standardmarkøren.

Skrivebeskyttet almindelig tekst

Hvis du vil have <input readonly> -elementer i din form, der er udformet som almindelig tekst, skal du bruge .form-control-plaintext class for at fjerne standardformularfeltstyling og bevare den korrekte margen og polstring.

Afkrydsningsfelter og radioer

Standard afkrydsningsfelter og radioer forbedres ved hjælp af .form-check, en enkelt klasse for begge inputtyper, der forbedrer layoutet og opførslen af deres HTML-elementer. Afkrydsningsfelter er til at vælge en eller flere indstillinger på en liste, mens radioer er til at vælge en indstilling blandt mange.

Deaktiverede afkrydsningsfelter og radioer understøttes, men for at give en not-allowed markør på musens svæver <label>, skal du tilføje attributten disabled til .form-check-input. Funktionen deaktiveret vil anvende en lysere farve for at hjælpe med at indikere inputets tilstand.

Brug af afkrydsningsfelter og radioer er bygget til at understøtte HTML-baseret formvalidering og give kortfattede, tilgængelige etiketter. Som sådan er vores <input> s og <label> s søskendeelementer i modsætning til en <input> inden for en <label>. Dette er lidt mere detaljeret, da du skal angive id og for attributter for at relatere <input> og <label>.

Standard (stablet)

Som standard vil et vilkårligt antal afkrydsningsfelter og radioer, der er søskende, stables lodret og passende afstand med .form-check.

Standardafkrydsningsfelt
Deaktiveret afkrydsningsfelt

Standardradio
Anden standardradio
Deaktiveret radio

Integreret

Gruppér afkrydsningsfelter eller radioer på samme vandrette række ved at tilføje .form-check-inline til enhver .form-check.

1
2
3 (deaktiveret)

1
2
3 (deaktiveret)

Uden etiketter

Tilføj .position-static til input inden for .form-check, der ikke har nogen etikettekst. Husk at stadig give en eller anden form for etiket til hjælpende teknologier (f.eks. Ved hjælp af aria-label).

Layout

Da Bootstrap anvender display: block og width: 100% til næsten alle vores formkontroller , formularer stables som standard lodret. Yderligere klasser kan bruges til at variere dette layout pr. Form.

Formgrupper

Klassen .form-group er den nemmeste måde for at tilføje nogle strukturer til formularer. Det giver en fleksibel klasse, der tilskynder til korrekt gruppering af etiketter, kontrolelementer, valgfri hjælpetekst og formvalideringsmeddelelser. Som standard gælder det kun margin-bottom, men det henter yderligere stilarter i .form-inline efter behov. Brug den med <fieldset> s, <div> s eller næsten ethvert andet element.

Formulargitter

Mere komplekse formularer kan bygges ved hjælp af vores gridklasser. Brug disse til formularlayouter, der kræver flere kolonner, varierede bredder og yderligere justeringsmuligheder.

Formularrække

Du kan også bytte .row til .form-row, en variation af vores standard gitter række, der tilsidesætter standard kolonne tagrender til strammere og mere kompakte layouts.

Mere komplekse layouts kan også oprettes med gittersystemet.

Horisontal form

Opret vandrette formularer med gitteret ved at tilføje .row klassen til at danne grupper og bruge .col-*-* klasser for at specificere bredden på dine etiketter og kontrolelementer. Sørg for også at tilføje .col-form-label til dine <label> så de er lodret centreret med deres tilknyttede formkontroller.

Til tider skal du måske bruge margen- eller polstringsværktøjer til at skabe den perfekte justering, du har brug for. For eksempel har vi fjernet padding-top på vores stablede radioindgangsetiket for bedre at justere tekstbaseline.

Vandret formetiket størrelse

Kolonnestørrelse

Som vist i de foregående eksempler giver vores gittersystem dig mulighed for at placere et vilkårligt antal .col s inden for en .row eller .form-row. De deler den tilgængelige bredde ligeligt mellem dem. Du kan også vælge et undersæt af dine kolonner for at tage mere eller mindre plads, mens de resterende .col er lige så opdelt resten med specifikke kolonneklasser som .col-7.

Automatisk størrelse

Eksemplet nedenfor bruger et flexbox-værktøj til at lodrette centrere indholdet og ændre .col til .col-auto, så dine kolonner kun tager så meget plads som nødvendigt. Sagt på en anden måde, størrelsen på selve søjlen er baseret på indholdet.

Du kan derefter remixe det igen med størrelsesspecifikke søjleklasser.

Og selvfølgelig understøttes brugerdefinerede formkontroller.

Integrerede formularer

Brug .form-inline klasse for at få vist en række etiketter, formkontroller og knapper på en enkelt vandret række. Formularstyringer inden for integrerede former varierer lidt fra deres standardtilstande.

  • Kontrolelementer er display: flex, der skjuler ethvert HTML-hvidt mellemrum og giver dig mulighed for at give justeringskontrol med afstands- og flexbox-hjælpeprogrammer.
  • Kontrolelementer og inputgrupper modtager width: auto for at tilsidesætte Bootstrap-standard width: 100%.
  • Kontrolelementer vises kun indbygget i visningsporte, der er mindst 576 px brede for at tage højde for smalle visningsport på mobile enheder.

Det kan være nødvendigt at manuelt adressere bredden og justeringen af individuelle formkontroller med afstandsværktøjer (som vist nedenfor). Endelig skal du altid medtage en <label> med hver formkontrol, selvom du har brug for at skjule det for ikke-skærmlæser besøgende med .sr-only .

Brugerdefinerede formkontroller og markeringer understøttes også.

Alternativer til skjulte etiketter

Hjælpende teknologier som f.eks. skærmlæsere har problemer med dine formularer, hvis du ikke inkluderer en etiket til hvert input. For disse integrerede formularer kan du skjule etiketterne ved hjælp af klassen .sr-only. Der er yderligere alternative metoder til tilvejebringelse af en etiket til hjælpende teknologier, såsom aria-label, aria-labelledby eller title -attribut. Hvis ingen af disse er til stede, kan hjælpende teknologier ty til at bruge attributten placeholder, hvis den er til stede, men bemærk at brugen af placeholder som udskiftning af andre mærkningsmetoder frarådes.

Hjælpstekst

Hjælpstekst på blokniveau i formularer kan oprettes ved hjælp af .form-text (tidligere kendt som .help-block i v3). Integreret hjælpetekst kan implementeres fleksibelt ved hjælp af ethvert indbygget HTML-element og hjælpeklasser som .text-muted.

Tilknytning af hjælpetekst til formkontrol

Hjælpsteksten skal være eksplicit knyttet til den formkontrol, den vedrører ved hjælp af attributten aria-describedby. Dette vil sikre, at hjælpende teknologier – som f.eks. Skærmlæsere – annoncerer denne hjælpetekst, når brugeren fokuserer eller går ind i kontrolelementet.

Hjælpetekst nedenfor input kan styles med .form-text. Denne klasse inkluderer display: block og tilføjer noget topmargen for nem afstand fra input ovenfor.

Adgangskode Din adgangskode skal være 8-20 tegn lang, indeholde bogstaver og tal og må ikke indeholde mellemrum, specialtegn eller emoji.

Integreret tekst kan bruge et hvilket som helst typisk indbygget HTML-element (det være sig en <small>, <span> eller noget andet) med intet mere end en hjælpeklasse.

Deaktiverede formularer

Tilføj disabled boolesk attribut på et input for at forhindre brugerinteraktioner og få det til at vises lettere.

Tilføj disabled attribut til en <fieldset> for at deaktivere alle kontrollerne inden for.

Advarsel med ankre

Som standard behandler browsere alle oprindelige formkontroller (<input>, <select> og <button> -elementer) inde i en <fieldset disabled> som deaktiveret, hvilket forhindrer både tastatur- og musevirkninger på dem. Men hvis din formular også indeholder <a ... class="btn btn-*"> -elementer, får disse kun en stil med pointer-events: none. Som bemærket i afsnittet om deaktiveret tilstand for knapper (og specifikt i underafsnittet for ankerelementer) er denne CSS-egenskab endnu ikke standardiseret og understøttes ikke fuldt ud i Opera 18 og derunder eller i Internet Explorer 10 og vandt forhindrer ikke tastaturbrugere i at kunne fokusere eller aktivere disse links. For at være sikker skal du bruge brugerdefineret JavaScript til at deaktivere sådanne links.

Cross-browser kompatibilitet

Mens Bootstrap vil anvende disse stilarter i alle browsere, Internet Explorer 11 og derunder understøtter ikke fuldt ud attributten disabled på en <fieldset>. Brug tilpasset JavaScript til at deaktivere feltsættet i disse browsere.

Validering

Giv værdifuld, brugbar feedback til dine brugere med HTML5-formvalidering – tilgængelig i alle vores understøttede browsere. Vælg fra browserens standardvalideringsfeedback, eller implementer brugerdefinerede meddelelser med vores indbyggede klasser og start-JavaScript.

Vi anbefaler stærkt tilpassede valideringsformater, da standardbrowserstandarder ikke annonceres til skærmlæsere.

Sådan fungerer det

Sådan fungerer formularvalidering med Bootstrap:

  • HTML-formularvalidering anvendes via CSSs to pseudoklasser, :invalid og :valid. Det gælder for <input>, <select> og <textarea> -elementer.
  • Bootstrap afgrænser :invalid og :valid -klassen til forælder .was-validated -klassen, normalt anvendt på klassen <form>. Ellers vises ethvert obligatorisk felt uden en værdi som ugyldigt ved sideindlæsning. På denne måde kan du vælge, hvornår du vil aktivere dem (typisk efter at formularindsendelse er forsøgt).
  • Som et tilbagefald skal .is-invalid og .is-valid klasser kan bruges i stedet for pseudoklasser til validering af serversiden. De kræver ikke en .was-validated overordnet klasse.
  • På grund af begrænsninger i, hvordan CSS fungerer, kan vi ikke (i øjeblikket) anvende stilarter på en <label>, der kommer foran en formularkontrol i DOM uden hjælp fra brugerdefineret JavaScript.
  • Alle moderne browsere understøtter begrænsningsvaliderings-APIet, en række JavaScript-metoder til validering af formkontroller.
  • Feedbackmeddelelser kan bruge browserens standardindstillinger (forskellige for hver browser og ustabile via CSS) eller vores tilpassede feedback-stilarter med yderligere HTML og CSS.
  • Du kan give brugerdefinerede gyldighedsmeddelelser med setCustomValidity i JavaScript.

Med det i tankerne skal du overveje følgende demoer for vores brugerdefinerede formvalideringsstile, valgfri serversideklasser og standardindstillinger for browseren.

Tilpassede stilarter

For brugerdefinerede Bootstrap-formularvalideringsmeddelelser skal du føje novalidate boolesk attribut til din <form>. Dette deaktiverer browserens standardværktøjstip til feedback, men giver stadig adgang til formvaliderings-APIerne i JavaScript. Prøv at indsende nedenstående formular; vores JavaScript opfanger sendeknappen og videresender feedback til dig.

Når du prøver at indsende, ser du :invalid og :valid stilarter anvendt på dine formularkontroller.

Browserstandarder

Er du ikke interesseret i brugerdefinerede valideringsfeedback-beskeder eller at skrive JavaScript for at ændre formadfærd? Alt godt, du kan bruge browserens standardindstillinger. Prøv at indsende nedenstående formular. Afhængigt af din browser og operativsystem vil du se en lidt anden typografi for feedback.

Selvom disse feedback-typografier ikke kan designes med CSS, kan du stadig tilpasse feedback-teksten via JavaScript.

Serverside

Vi anbefaler at bruge validering af klientsiden, men hvis du har brug for serversiden, kan du angive ugyldige og gyldige formularfelter med .is-invalid og .is-valid. Bemærk, at .invalid-feedback også understøttes af disse klasser.

Understøttede elementer

Vores eksempelformularer viser indfødte tekstlige <input> s ovenfor, men formvalideringsstile er tilgængelige også til vores brugerdefinerede formularkontroller.

Værktøjstip

Hvis dit formularlayout tillader det, kan du bytte .{valid|invalid}-feedback klasser til .{valid|invalid}-tooltip klasser for at få vist valideringsfeedback i et stylet værktøjstip. Sørg for at have en forælder med position: relative til positionering af værktøjstip. I eksemplet nedenfor har vores kolonneklasser dette allerede, men dit projekt kan kræve en alternativ opsætning.

Brugerdefinerede formularer

For endnu mere tilpasning og krydsning browser konsistens, brug vores helt tilpassede formelementer til at erstatte browserens standardindstillinger. De er bygget oven på semantisk og tilgængelig markering, så de er solide erstatninger for enhver standardformularstyring.

Afkrydsningsfelter og radioer

Hver afkrydsningsfelt og radio er pakket ind i en <div> med et søskende <span> for at oprette vores brugerdefinerede kontrol og en <label> til den ledsagende tekst. Strukturelt er dette den samme tilgang som vores standard .form-check.

Vi bruger søskendevælgeren (~) til alle vores <input> -tilstande – ligesom :checked – for at style vores tilpassede formindikator korrekt. Når det kombineres med .custom-control-label -klassen, kan vi også style teksten for hvert element baseret på <input> s tilstand.

Vi skjuler standard <input> med opacity og bruger .custom-control-label til at bygge en ny brugerdefineret formindikator på plads med ::before og ::after. Desværre kan vi ikke oprette en brugerdefineret fra bare <input>, fordi CSSs content ikke fungerer på dette element.

I de markerede tilstande bruger vi base64 integrerede SVG-ikoner fra Open Iconic. Dette giver os den bedste kontrol til styling og placering på tværs af browsere og enheder.

Afkrydsningsfelter

Marker dette tilpassede afkrydsningsfelt

Tilpassede afkrydsningsfelter kan også bruge :indeterminate pseudoklassen, når den manuelt indstilles via JavaScript (der er ingen tilgængelig HTML-attribut til angivelse af den).

Marker dette tilpassede afkrydsningsfelt

Hvis du bruger jQuery, skal noget som dette være tilstrækkeligt:

Radioer

Skift denne brugerdefinerede radio
Eller skift denne anden brugerdefinerede radio

Integreret

Skift denne brugerdefinerede radio
Eller skift denne anden brugerdefinerede radio

Deaktiveret

Brugerdefinerede afkrydsningsfelter og radioer kan også deaktiveres. Føj disabled boolesk attribut til <input>, og den tilpassede indikator og etiketbeskrivelse styles automatisk.

Marker dette brugerdefinerede afkrydsningsfelt
Skift denne brugerdefinerede radio

Vælg menu

Tilpasset <select> menuer behøver kun en brugerdefineret klasse .custom-select for at udløse de tilpassede typografier.

Du kan også vælge mellem små og store brugerdefinerede markeringer til matcher vores tekstinput med samme størrelse.

multiple attributten understøttes også:

Som size -attributten er:

Filbrowser

Filinput er den mest gnarly af gruppen og kræver yderligere JavaScript, hvis du vil tilslutte dem med funktionel Vælg fil … og valgt filnavnetekst.

Vælg fil

Vi skjuler standardfilen <input> via og stil i stedet <label>. Knappen genereres og placeres med ::after. Endelig erklærer vi en width og height<input> for korrekt afstand til omgivende indhold .

Oversættelse eller tilpasning af strengene

:lang() pseudoklassen bruges til at muliggøre oversættelse af “Gennemse” -teksten til andre sprog. Tilsidesæt eller tilføj poster til $custom-file-text Sass-variablen med det relevante sprogmærke og lokaliserede strenge. De engelske strenge kan tilpasses på samme måde.For eksempel er her, hvordan man kan tilføje en spansk oversættelse (spansk sprogkode er es):

Her er lang(es) i aktion på det brugerdefinerede filinput til en spansk oversættelse:

Seleccionar Archivo

Du bliver nødt til at indstille sproget i dit dokument (eller undertræ dertil) korrekt for at den korrekte tekst skal vises. Dette kan gøres ved hjælp af lang -attributten på <html> -elementet eller Content-Language HTTP-header , blandt andre metoder.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *