Ekzemploj kaj uzgvidlinioj por formo-kontrolstiloj, aranĝaj opcioj kaj kutimaj komponantoj por krei diversajn formojn.
Superrigardo
La formularaj kontroloj de Bootstrap plivastiĝas sur niaj Rebootitaj formularstiloj kun klasoj. Uzu ĉi tiujn klasojn por elekti siajn personecigitajn ekranojn por pli konsekvenca bildigo tra retumiloj kaj aparatoj.
Nepre uzu taŭgan typeatributon ĉe ĉiuj enigaĵoj (ekz. emailpor retpoŝta adreso aŭ numberpor nombraj informoj) por utiligi pli novajn enigajn kontrolojn kiel retpoŝtan konfirmon, nombro-elekton kaj pli.
Jen rapida ekzemplo por montri la formularajn stilojn de Bootstrap. Daŭre legu por dokumentado pri postulataj klasoj, formulararanĝo kaj pli.
Formkontroloj
Tekstaj formkontroloj—kiel <input>s, <select>s, kaj <textarea>s—estas stilitaj kun la .form-controlklaso. Inkluditaj estas stiloj por ĝenerala aspekto, fokusa stato, grandeco kaj pli.
Por dosieraj enigaĵoj, interŝanĝu la .form-controlpor .form-control-file.
Dimensio
Agordu altecojn uzante klasojn kiel .form-control-lgkaj .form-control-sm.
Nurlegebla
Aldonu la readonlybulean atributon al enigo por malhelpi modifon de la valoro de la enigo. Nurlegeblaj enigaĵoj ŝajnas pli malpezaj (same kiel malebligitaj enigaĵoj), sed konservas la norman kursoron.
Nur legebla simpla teksto
Se vi volas havi <input readonly>elementojn en via formularo stilitaj kiel simpla teksto, uzu la .form-control-plaintextklason por forigi la defaŭltan formularan kampan stiladon kaj konservi la ĝustan marĝenon kaj kompletigo.
Gamaj Enigoj
Agordu horizontale ruleblajn intervalenigojn per .form-control-range.
Markobutonoj kaj radioj
Defaŭltaj markobutonoj kaj radioj estas plibonigitaj helpe de .form-check, ununura klaso por ambaŭ enigtipoj, kiu plibonigas la aranĝon kaj konduton de iliaj HTML-elementoj . Markobutonoj estas por elekti unu aŭ plurajn opciojn en listo, dum radioj estas por elekti unu opcion el multaj.
Malebligitaj markobutonoj kaj radioj estas subtenataj, sed por provizi not-allowedkursoron sur ŝvebado de la gepatro <label>, vi devos aldoni la disabledatributon al la .form-check-input. La malfunkciigita atributo aplikos pli helan koloron por helpi indiki la staton de la enigo.
Markobutonoj kaj radio-uzoj estas konstruitaj por subteni HTML-bazitan formularvalidigon kaj disponigi koncizajn, alireblajn etikedojn. Kiel tia, niaj <input>s kaj <label>s estas gefrataj elementoj kontraste al <input>ene de <label>. Ĉi tio estas iomete pli multvorta ĉar vi devas specifi idkaj foratributojn por rilatigi la <input>kaj <label>.
Defaŭlte (stakita)
Defaŭlte, ajna nombro da markobutonoj kaj radioj kiuj estas tujaj gefratoj estos vertikale stakigitaj kaj taŭge interspacigitaj per .form-check.
En linio
Grupigu markobutonojn aŭ radiojn sur la sama horizontala vico aldonante .form-check-inlineal iu ajn .form-check.
Sen etikedoj
Aldonu .position-statical enigaĵoj ene de .form-checkkiuj ne havas ajnan etikedtekston. Memoru ankoraŭ provizi iun formon de etikedo por helpaj teknologioj (ekzemple, uzante aria-label).
Aranĝo
Ĉar Bootstrap validas display: blockkaj width: 100%al preskaŭ ĉiuj niaj formularaj kontroloj, formoj defaŭlte stablos vertikale. Pliaj klasoj povas esti uzataj por varii ĉi tiun aranĝon laŭ forma bazo.
Formu grupojn
La .form-groupklaso estas la plej facila maniero aldoni iom da strukturo al formoj. Ĝi disponigas flekseblan klason kiu instigas taŭgan grupigon de etikedoj, kontroloj, laŭvola helpteksto, kaj formularvalidigmesaĝado. Defaŭlte ĝi nur aplikas margin-bottom, sed ĝi prenas pliajn stilojn .form-inlinelaŭbezone. Uzu ĝin kun <fieldset>s, <div>s aŭ preskaŭ ajna alia elemento.
Formu kradon
Pli kompleksaj formoj povas esti konstruitaj uzante niajn kradklasojn. Uzu ĉi tiujn por formularaj aranĝoj, kiuj postulas multoblajn kolumnojn, diversajn larĝojn kaj pliajn alineajn opciojn.
Form vico
Vi ankaŭ povas interŝanĝi .rowpor .form-row, vario de nia norma kradvico, kiu anstataŭas la defaŭltajn kolonkanalojn por pli striktaj kaj pli kompaktaj aranĝoj.
Pli kompleksaj aranĝoj ankaŭ povas esti kreitaj per la kradsistemo.
Horizontala formo
Kreu horizontalajn formojn kun la krado aldonante la .rowklason por formi grupojn kaj uzante la .col-*-*klasojn por specifi la larĝon de viaj etikedoj kaj kontroloj. Nepre aldonu .col-form-labelankaŭ al viaj <label>s, por ke ili estu vertikale centritaj kun siaj rilataj formularaj kontroloj.
Foje, vi eble bezonos uzi marĝenajn aŭ kompletigajn ilojn por krei tiun perfektan vicigon, kiun vi bezonas. Ekzemple, ni forigis la padding-topetikedon de nia stakigita radio-enigo por pli bone vicigi la tekstan bazlinion.
Horizontala formo etikedo grandeco
Nepre uzu .col-form-label-smaŭ .col-form-label-lgal viaj <label>s aŭ <legend>s por ĝuste sekvi la grandecon de .form-control-lgkaj .form-control-sm.
Kolumna grandeco
Kiel montrite en la antaŭaj ekzemploj, nia kradsistemo permesas vin meti ajnan nombron da .cols ene de a .rowaŭ .form-row. Ili dividos la disponeblan larĝon egale inter ili. Vi ankaŭ povas elekti subaron de viaj kolumnoj por okupi pli-malpli da spaco, dum la ceteraj .cols egale disigas la ceterajn, kun specifaj kolumnaj klasoj kiel .col-7.
Aŭtomata grandeco
La ĉi-suba ekzemplo uzas flexbox-ilaĵon por vertikale centri la enhavon kaj ŝanĝi .colal .col-autotiel, ke viaj kolumnoj nur okupas tiom da spaco kiom necesas. Aliflanke, la kolumno grandigas sin surbaze de la enhavo.
Vi tiam povas remiksi tion denove kun grandeco-specifaj kolumnaj klasoj.
Uzu la .form-inlineklason por montri serion da etikedoj, formularaj kontroloj kaj butonoj sur unu horizontala vico. Formkontroloj ene de enliniaj formoj iomete varias de siaj defaŭltaj statoj.
Kontroloj estas display: flex, kolapsante ajnan HTML-blankan spacon kaj ebligante al vi provizi vickontrolon kun interspacigaj kaj flekskesto iloj.
Kontroloj kaj eniggrupoj ricevas width: autopor anstataŭi la defaŭltan Bootstrap width: 100%.
Kontroloj nur aperas enlinie en vidfenestroj kiuj estas almenaŭ 576px larĝaj por respondeci pri mallarĝaj vidfenestroj sur porteblaj aparatoj.
Vi eble bezonos mane trakti la larĝecon kaj vicigon de individuaj formularaj kontroloj kun interspacaj utilecoj (kiel montrite sube). Finfine, nepre ĉiam inkluzivi <label>ĉe ĉiu formulara kontrolo, eĉ se vi bezonas kaŝi ĝin de ne-ekranlegantaj vizitantoj per .sr-only.
Propraj formularaj kontroloj kaj elektoj ankaŭ estas subtenataj.
Alternativoj al kaŝitaj etikedoj
Helpaj teknologioj kiel ekranlegiloj havos problemojn kun viaj formoj se vi ne inkluzivas etikedon por ĉiu enigo. Por ĉi tiuj enliniaj formoj, vi povas kaŝi la etikedojn uzante la .sr-onlyklason. Ekzistas pliaj alternativaj metodoj provizi etikedon por helpaj teknologioj, kiel ekzemple la aria-label, aria-labelledbyaŭ titleatributo. Se neniu el ĉi tiuj ĉeestas, helpaj teknologioj povas recurri al uzado de la placeholderatributo, se ĉeestas, sed notu ke uzo de placeholderkiel anstataŭaĵo por aliaj etikedmetodoj ne estas konsilita.
Helpa teksto
Bloknivela helpteksto en formoj povas esti kreita uzante .form-text(antaŭe konata kiel .help-blocken v3). Enlinia helpteksto povas esti flekseble efektivigita uzante ajnan enlinian HTML-elementon kaj utilklasojn kiel .text-muted.
Asocii helpan tekston kun formularaj kontroloj
Helpteksto devus esti eksplicite asociita kun la formo-kontrolo al kiu ĝi rilatas uzante la aria-describedbyatributon. Ĉi tio certigos, ke helpaj teknologioj—kiel ekranlegiloj—anoncos ĉi tiun helptekston kiam la uzanto fokusas aŭ eniras la kontrolon.
Helpteksto sub enigaĵoj povas esti stilitaj per .form-text. Ĉi tiu klaso inkluzivas display: blockkaj aldonas iom da supra marĝeno por facila interspacigo de la enigoj supre.
Via pasvorto devas havi 8-20 signojn longa, enhavi literojn kaj ciferojn, kaj ne devas enhavi spacojn, specialajn signojn aŭ emoji.
Enlinia teksto povas uzi ajnan tipan enlinian HTML-elementon (ĉu ĝi <small>, <span>, aŭ io alia) kun nenio pli ol utileca klaso.
Malebligitaj formoj
Aldonu la disabledbulean atributon al enigo por malhelpi uzantinteragojn kaj fari ĝin aspekti pli malpeza.
Aldonu la disabledatributon al a <fieldset>por malŝalti ĉiujn kontrolojn ene.
Averto kun ankroj
Defaŭlte, retumiloj traktos ĉiujn denaskajn formkontrolojn ( <input>, <select>kaj <button>elementoj) ene de <fieldset disabled>kiel malŝaltitaj, malhelpante ambaŭ klavarajn kaj musajn interagojn sur ili. Tamen, se via formo ankaŭ inkluzivas <a ... class="btn btn-*">elementojn, ĉi tiuj nur ricevos stilon pointer-events: none. Kiel notite en la sekcio pri malfunkciigita stato por butonoj (kaj specife en la subsekcio por ankraj elementoj), ĉi tiu CSS-posedaĵo ankoraŭ ne estas normigita kaj ne estas plene subtenata en Internet Explorer 10, kaj ne malhelpas klavaruzantojn esti. kapabla enfokusigi aŭ aktivigi ĉi tiujn ligilojn. Do por esti sekura, uzu kutiman JavaScript por malŝalti tiajn ligilojn.
Inter-retumila kongruo
Dum Bootstrap aplikos ĉi tiujn stilojn en ĉiuj retumiloj, Internet Explorer 11 kaj sube ne plene subtenas la disabledatributon sur <fieldset>. Uzu kutiman JavaScript por malŝalti la kamparon en ĉi tiuj retumiloj.
Valido
Provizu valorajn, ageblajn komentojn al viaj uzantoj per HTML5-formula validigo - havebla en ĉiuj niaj subtenataj retumiloj . Elektu el la retumilo defaŭlta validumada sugesto, aŭ efektivigu kutimajn mesaĝojn kun niaj enkonstruitaj klasoj kaj komenca JavaScript.
Ni nuntempe rekomendas uzi kutimajn validigajn stilojn, ĉar denaskaj retumiloj defaŭltaj konfirmmesaĝoj ne estas konstante elmontritaj al helpaj teknologioj en ĉiuj retumiloj (plej precipe, Chrome sur labortablo kaj poŝtelefono).
Kiel ĝi funkcias
Jen kiel validado de formularoj funkcias kun Bootstrap:
HTML-formvalidigo estas aplikata per la du pseŭdoklasoj de CSS, :invalidkaj :valid. Ĝi validas por <input>, <select>, kaj <textarea>elementoj.
Bootstrap ampleksas la :invalidkaj :validstilojn al gepatra .was-validatedklaso, kutime aplikita al la <form>. Alie, ajna postulata kampo sen valoro aperas kiel nevalida ĉe paĝa ŝarĝo. Tiel, vi povas elekti kiam aktivigi ilin (tipe post kiam la formularo estas provita).
Por restarigi la aspekton de la formularo (ekzemple, en la kazo de dinamikaj formularaj sendadoj uzante AJAX), forigu la .was-validatedklason de la <form>denove post sendo.
Kiel rezerva, .is-invalidkaj .is-validklasoj povas esti uzataj anstataŭ la pseŭdo-klasoj por servilflanka validumado . Ili ne postulas .was-validatedgepatran klason.
Pro limoj en kiel CSS funkcias, ni ne povas (nuntempe) apliki stilojn al <label>kiu venas antaŭ formo-kontrolo en la DOM sen la helpo de kutima JavaScript.
Ĉiuj modernaj retumiloj subtenas la limigan validumadon API , serion de JavaScript-metodoj por validigi formularajn kontrolojn.
Reagomesaĝoj povas utiligi la defaŭltajn retumilon (malsamajn por ĉiu retumilo, kaj malstileblajn per CSS) aŭ niajn kutimajn retrostilojn kun pliaj HTML kaj CSS.
Vi povas provizi kutimajn validecajn mesaĝojn setCustomValidityen JavaScript.
Konsiderante tion, konsideru la sekvajn demonstraĵojn por niaj kutimaj formularaj validigaj stiloj, laŭvolaj servilaj flankaj klasoj kaj retumiloj defaŭltaj.
Propraj stiloj
Por kutimaj Bootstrap formularvalidigaj mesaĝoj, vi devos aldoni la novalidatebulean atributon al via <form>. Ĉi tio malŝaltas la defaŭltajn sugestajn konsiletojn de la retumilo, sed ankoraŭ disponigas aliron al la API-validigaj formularoj en JavaScript. Provu sendi la suban formularon; nia JavaScript kaptos la sendi butonon kaj sendos komentojn al vi.
Kiam vi provas sendi, vi vidos la stilojn :invalidkaj aplikatajn al viaj formularaj kontroloj.:valid
Retumilo defaŭlta
Ne interesiĝas pri kutimaj validigaj sugestaj mesaĝoj aŭ skribi JavaScript por ŝanĝi formajn kondutojn? Ĉio bone, vi povas uzi la defaŭltajn retumilon. Provu sendi la suban formularon. Depende de via retumilo kaj OS, vi vidos iomete malsaman stilon de retrosciigo.
Kvankam ĉi tiuj sugestiloj ne povas esti stilitaj per CSS, vi ankoraŭ povas personecigi la sugestajn tekstojn per JavaScript.
Servila flanko
Ni rekomendas uzi klientflankan validigon, sed se vi bezonas servilan flankon, vi povas indiki nevalidajn kaj validajn formularajn kampojn per .is-invalidkaj .is-valid. Notu, ke .invalid-feedbackankaŭ estas subtenata kun ĉi tiuj klasoj.
Subtenataj elementoj
Niaj ekzemplaj formoj montras denaskajn tekstajn <input>ojn supre, sed stiloj de validado de formularoj disponeblas ankaŭ por niaj kutimaj formularaj kontroloj.
Konsiletoj
Se via formulararanĝo permesas ĝin, vi povas interŝanĝi la .{valid|invalid}-feedbackklasojn por .{valid|invalid}-tooltipklasoj por montri validigajn sugestojn en stilita konsileto. Nepre havu gepatron kun position: relativeĝi por poziciigado de konsileto. En la malsupra ekzemplo, niaj kolumnaj klasoj jam havas ĉi tion, sed via projekto eble postulas alternativan aranĝon.
Propraj formoj
Por eĉ pli da personigo kaj trans-retumila konsekvenco, uzu niajn tute laŭmendajn formularelementojn por anstataŭigi la defaŭltajn retumilon. Ili estas konstruitaj sur semantika kaj alirebla markado, do ili estas solidaj anstataŭaĵoj por ajna defaŭlta formo-kontrolo.
Markobutonoj kaj radioj
Ĉiu markobutono kaj radio estas envolvita en a <div>kun gefrato <span>por krei nian kutiman kontrolon kaj a <label>por la akompana teksto. Strukture, ĉi tiu estas la sama aliro kiel nia defaŭlta .form-check.
Ni uzas la gefratan elektilon ( ~) por ĉiuj niaj <input>ŝtatoj—kiel :checked—por taŭge stiligi nian kutiman formularindikilon. Se kombinite kun la .custom-control-labelklaso, ni ankaŭ povas stiligi la tekston por ĉiu ero surbaze de la <input>stato de la '.
Ni kaŝas la defaŭltan <input>per opacitykaj uzas la .custom-control-labelpor konstrui novan propran formularan indikilon en ĝia loko kun ::beforekaj ::after. Bedaŭrinde ni ne povas konstrui kutiman el nur la <input>ĉar CSS-oj contentne funkcias sur tiu elemento.
En la kontrolitaj ŝtatoj, ni uzas baz64-enkorpigitajn SVG-ikonojn de Open Iconic . Ĉi tio provizas al ni la plej bonan kontrolon por stilado kaj poziciigado tra retumiloj kaj aparatoj.
Markobutonoj
Propraj markobutonoj ankaŭ povas uzi la :indeterminatepseŭdoklason kiam permane agordita per JavaScript (ne ekzistas disponebla HTML-atributo por specifi ĝin).
Se vi uzas jQuery, io tia devus sufiĉi:
Radioaparatoj
En linio
Malebligita
Propraj markobutonoj kaj radioj ankaŭ povas esti malŝaltitaj. Aldonu la disabledbulean atributon al la <input>kaj la kutima indikilo kaj etikedo priskribo estos aŭtomate stilitaj.
Elektu menuon
Propraj <select>menuoj bezonas nur kutiman klason, .custom-selectpor ekigi la kutimajn stilojn. Propraj stiloj estas limigitaj al la <select>komenca aspekto de la s kaj ne povas modifi la <option>s pro retumila limigo.
Vi ankaŭ povas elekti el malgrandaj kaj grandaj kutimaj elektoj por kongrui kun niaj samgrandaj tekstaj enigoj.
La multipleatributo ankaŭ estas subtenata:
Kiel estas la sizeatributo:
Gamo
Kreu kutimajn <input type="range">kontrolojn per .custom-range. La trako (la fono) kaj dikfingro (la valoro) estas ambaŭ stilitaj por aperi la sama tra retumiloj. Ĉar nur IE kaj Fajrovulpo subtenas "plenigi" ilian trakon de la maldekstra aŭ dekstre de la dikfingro kiel rimedo por vide indiki progreson, ni nuntempe ne subtenas ĝin.
Gamaj enigaĵoj havas implicajn valorojn por minkaj max— 0kaj 100, respektive. Vi povas specifi novajn valorojn por tiuj uzantaj la minkaj maxatributojn.
Defaŭlte, intervalo enigaĵoj "krap" al entjervaloroj. Por ŝanĝi ĉi tion, vi povas specifi stepvaloron. En la malsupra ekzemplo, ni duobligas la nombron da paŝoj uzante step="0.5".
Dosiera retumilo
La dosiera enigo estas la plej malnobla el la aro kaj postulas plian JavaScript se vi ŝatus kunligi ilin kun funkcia Elektu dosieron... kaj elektitan dosiernoman tekston.
Ni kaŝas la defaŭltan dosieron <input>per opacitykaj anstataŭe stiligas la <label>. La butono estas generita kaj poziciigita per ::after. Finfine, ni deklaras a widthkaj heightsur la <input>por taŭga interspaco por ĉirkaŭa enhavo.
Tradukante aŭ personigante la kordojn
La :lang()pseŭdo-klaso estas uzata por permesi tradukadon de la teksto "Frumu" al aliaj lingvoj. Anstataŭigi aŭ aldonu enskribojn al la $custom-file-textvariablo Sass kun la koncerna lingvo-etikedo kaj lokalizitaj ĉenoj. La anglaj kordoj povas esti personecigitaj same. Ekzemple, jen kiel oni povus aldoni hispanan tradukon (la kodo de la hispana lingvo estas es):
Jen lang(es)en ago pri la kutima dosier-enigo por hispana traduko:
Vi devos ĝuste agordi la lingvon de via dokumento (aŭ subarbo) por ke la ĝusta teksto estu montrita. Ĉi tio povas esti farita uzante la langatributon sur la <html>elemento aŭ la Content-LanguageHTTP-kapo , inter aliaj metodoj.