Példák és használati útmutatók az űrlapvezérlési stílusokhoz, elrendezési beállításokhoz és egyéni összetevőkhöz az űrlapok széles skálájának létrehozásához.
Áttekintés
A Bootstrap űrlapvezérlői osztályokkal bővítik az Újraindított űrlapstílusainkat . Ezekkel az osztályokkal választhatja ki a testreszabott megjelenítéseiket a konzisztensebb megjelenítés érdekében a böngészőkben és eszközökön.
Ügyeljen arra, hogy typeminden bemeneten megfelelő attribútumot használjon (pl. emaile-mail-cím vagy numbernumerikus információ esetén), hogy kihasználhassa az újabb beviteli vezérlők előnyeit, mint például az e-mailek ellenőrzése, a számok kiválasztása és egyebek.
Íme egy gyors példa a Bootstrap űrlapstílusainak bemutatására. Olvassa tovább a szükséges osztályokkal, űrlapelrendezéssel és egyebekkel kapcsolatos dokumentációt.
Űrlapvezérlők
A szöveges űrlapvezérlők – például az <input>s, <select>s és s – az osztály <textarea>stílusával vannak kialakítva . .form-controlIde tartoznak az általános megjelenés, a fókuszállapot, a méretezés és egyebek stílusai.
Feltétlenül fedezze fel egyéni űrlapjainkat , hogy további stílust <select>alakítson ki.
Fájlbemenetek esetén cserélje .form-controlle a .form-control-file.
Méretezés
Állítsa be a magasságokat olyan osztályokkal, mint .form-control-lgés .form-control-sm.
Csak olvasható
Adja hozzá a readonlylogikai attribútumot egy bemenethez, hogy megakadályozza a bemenet értékének módosítását. A csak olvasható bemenetek világosabbnak tűnnek (akárcsak a letiltott bemenetek), de megtartják a szabványos kurzort.
Csak olvasható sima szöveg
Ha azt szeretné, hogy <input readonly>az űrlap elemei egyszerű szövegként legyenek stílusosak, az .form-control-plaintextosztály segítségével távolítsa el az alapértelmezett űrlapmezőstílust, és őrizze meg a megfelelő margót és kitöltést.
Tartomány bemenetek
Állítsa be a vízszintesen görgethető tartománybemeneteket a segítségével .form-control-range.
Jelölőnégyzetek és rádiók
Az alapértelmezett jelölőnégyzetek és rádiók továbbfejlesztésére szolgál .form-check, egyetlen osztály mindkét bemeneti típushoz, amely javítja a HTML-elemeik elrendezését és viselkedését . A jelölőnégyzetek egy vagy több lehetőség kiválasztására szolgálnak egy listában, míg a rádiók egy opció kiválasztására szolgálnak a sok közül.
A letiltott jelölőnégyzetek és rádiók támogatottak, de ahhoz, hogy a not-allowedkurzort a szülőre vigye, <label>hozzá kell adnia az disabledattribútumot a .form-check-input. A letiltott attribútum világosabb színt alkalmaz a bemenet állapotának jelzésére.
A jelölőnégyzetek és a rádiók használata úgy készült, hogy támogassák a HTML-alapú űrlapellenőrzést, és tömör, hozzáférhető címkéket biztosítsanak. Mint ilyen, a mi <input>s és <label>s testvérelemek, szemben a <input>belüli elemekkel <label>. Ez egy kicsit bőbeszédűbb, mivel meg kell adnia idés forattribútumokat kell megadnia a <input>és a <label>.
Alapértelmezett (halmozott)
Alapértelmezés szerint tetszőleges számú jelölőnégyzet és rádió, amelyek közvetlenül testvérek, függőlegesen egymásra lesznek rakva, és megfelelő távolságban a -val .form-check.
Sorban
Csoportosítsa a jelölőnégyzeteket vagy rádiókat ugyanabban a vízszintes sorban úgy, hogy hozzáadja .form-check-inlineőket bármelyikhez .form-check.
Címkék nélkül
Adjon hozzá .position-staticolyan bemenetekhez, .form-checkamelyekben nincs címkeszöveg. Ne felejtsen el valamilyen címkét biztosítani a kisegítő technológiákhoz (például a aria-label).
Elrendezés
Mivel a Bootstrap szinte minden űrlapvezérlőnkre vonatkozik display: block, width: 100%az űrlapok alapértelmezés szerint függőlegesen halmozódnak fel. További osztályok használhatók ennek az elrendezésnek az űrlaponkénti változtatására.
Alkoss csoportokat
Az .form-grouposztály a legegyszerűbb módja annak, hogy struktúrákat adjunk az űrlapokhoz. Rugalmas osztályt biztosít, amely ösztönzi a címkék, vezérlőelemek, az opcionális súgószöveg és az űrlapérvényesítő üzenetek megfelelő csoportosítását. Alapértelmezés szerint csak margin-bottom, de szükség szerint további stílusokat vesz fel .form-inline. Használja <fieldset>s, <div>s vagy szinte bármilyen más elemmel.
Űrlaprács
Bonyolultabb formák is építhetők rácsosztályaink segítségével. Használja ezeket olyan űrlapelrendezésekhez, amelyek több oszlopot, változó szélességet és további igazítási beállításokat igényelnek.
Űrlapsor
.rowLecserélheti a .form-rowszabványos rácssorunk egyik változatára is, amely felülírja az alapértelmezett oszlopcsatornákat a szűkebb és kompaktabb elrendezés érdekében .
A rácsrendszerrel bonyolultabb elrendezések is létrehozhatók.
Vízszintes forma
Hozzon létre vízszintes űrlapokat a rács segítségével úgy, hogy hozzáadja az .rowosztályt az űrlapcsoportokhoz, és az .col-*-*osztályokkal adja meg a címkék és vezérlők szélességét. Ügyeljen arra, hogy hozzáadja .col-form-labelaz <label>s-hez is, hogy függőlegesen középre kerüljön a hozzájuk tartozó űrlapvezérlőkkel.
Időnként előfordulhat, hogy margó- vagy padding segédprogramokat kell használnia a szükséges tökéletes igazítás létrehozásához. Például eltávolítottuk a padding-tophalmozott rádióbemenetek címkéjét, hogy jobban igazítsuk a szöveg alapvonalát.
Vízszintes formátumú címkeméretezés
Ügyeljen arra, hogy a .col-form-label-smvagy .col-form-label-lgaz <label>s vagy <legend>s-t használja, hogy megfelelően kövesse a .form-control-lgés a méretét .form-control-sm.
Oszlopméretezés
Ahogy az előző példákban is látható, a rácsrendszerünk lehetővé teszi, hogy tetszőleges számú .cols-t helyezzen el a .rowvagy .form-row. A rendelkezésre álló szélességet egyenlően osztják fel közöttük. Kiválaszthatja az oszlopok egy részhalmazát is, hogy több vagy kevesebb helyet foglaljon el, míg a fennmaradó .cols egyenlő mértékben osztja fel a többit, speciális oszloposztályokkal, például .col-7.
Automatikus méretezés
Az alábbi példa egy flexbox segédprogramot használ a tartalom függőleges középre igazításához, és úgy módosítja .col, .col-autohogy az oszlopok csak annyi helyet foglalnak el, amennyire szükség van. Másképpen fogalmazva, az oszlop a tartalom alapján méretezi magát.
Ezután újra keverheti ezt a méretspecifikus oszloposztályokkal.
Használja az .form-inlineosztályt címkék, űrlapvezérlők és gombok sorozatának megjelenítésére egyetlen vízszintes sorban. A soron belüli űrlapokon belüli űrlapvezérlők kissé eltérnek az alapértelmezett állapotuktól.
A vezérlők a display: flex, összecsukják a HTML szóközöket, és lehetővé teszik az igazítás szabályozását a térközökkel és a flexbox segédprogramokkal.
A vezérlők és a bemeneti csoportok width: autofelülbírálják a Bootstrap alapértelmezett értékét width: 100%.
A vezérlőelemek csak beágyazottan jelennek meg a legalább 576 képpont széles nézetablakban, hogy figyelembe vegyék a mobileszközök szűk nézetablakát.
Előfordulhat, hogy manuálisan kell kezelnie az egyes űrlapvezérlők szélességét és igazítását a térköz segédprogramokkal (lásd alább). Végül ügyeljen arra, hogy minden űrlapvezérlőhöz mindig szerepeljen egy <label>jel, még akkor is, ha el kell rejtenie azt a nem képernyőolvasó látogatók elől .sr-only.
Az egyéni űrlapvezérlők és -kijelölések szintén támogatottak.
A rejtett címkék alternatívái
A kisegítő technológiák, például a képernyőolvasók gondot okoznak az űrlapokkal, ha nem ad meg minden bevitelhez címkét. Ezeknél a szövegközi űrlapoknál az .sr-onlyosztály segítségével elrejtheti a címkéket. Vannak további alternatív módszerek is a segítő technológiák címkézésére, mint például a aria-label, aria-labelledbyvagy titleattribútum. Ha ezek egyike sem található meg, a kisegítő technológiák igénybe vehetik az placeholderattribútum használatát, ha van ilyen, de vegye figyelembe, hogy placeholdermás címkézési módszerek helyett nem javasolt az attribútum használata.
Súgó szöveg
Az űrlapok blokkszintű súgószövege a .form-text(korábban .help-blocka v3-ban ismert) használatával hozható létre. A soron belüli súgószöveg rugalmasan megvalósítható bármilyen soron belüli HTML elem és segédprogram osztályok használatával, mint pl .text-muted.
Súgószöveg társítása űrlapvezérlőkkel
A súgószöveget kifejezetten hozzá kell rendelni ahhoz az űrlapvezérlőhöz, amelyhez az aria-describedbyattribútum használatával kapcsolódik. Ez biztosítja, hogy a kisegítő technológiák – például a képernyőolvasók – közöljék ezt a súgószöveget, amikor a felhasználó fókuszál, vagy belép a vezérlőelembe.
Az alábbi bemeneti súgószöveg stílusozható a -val .form-text. Ez az osztály tartalmaz display: blockés ad hozzá néhány felső margót, hogy a fenti bemenetektől könnyebben elhelyezkedjen.
A jelszónak 8-20 karakter hosszúnak kell lennie, betűket és számokat kell tartalmaznia, és nem tartalmazhat szóközt, speciális karaktereket vagy hangulatjeleket.
A szövegközi szöveg bármilyen tipikus beágyazott HTML-elemet használhat (legyen az <small>, <span>, vagy valami más), csak egy segédprogram osztályával.
Letiltott űrlapok
Adja hozzá a disabledlogikai attribútumot egy bemenethez, hogy megakadályozza a felhasználói interakciókat, és világosabbnak tűnjön.
Adja hozzá az disabledattribútumot az a <fieldset>-hoz az összes vezérlő letiltásához.
Figyelmeztetés horgonyokkal
A böngészők alapértelmezés szerint letiltottként kezelik az összes natív űrlapvezérlőt ( <input>, <select>és <button>elemet) az a-n belül <fieldset disabled>, megakadályozva a billentyűzet és az egér interakcióit. Ha azonban az űrlap <a ... class="btn btn-*">elemeket is tartalmaz, akkor ezek csak a stílust kapják pointer-events: none. Amint azt a gombok letiltott állapotáról szóló részben (és különösen a horgonyelemekre vonatkozó alszakaszban) megjegyeztük, ez a CSS-tulajdonság még nincs szabványosítva, és nem támogatja teljes mértékben az Internet Explorer 10-ben, és nem akadályozza meg, hogy a billentyűzet felhasználói képes fókuszálni vagy aktiválni ezeket a linkeket. Tehát a biztonság kedvéért használjon egyéni JavaScriptet az ilyen hivatkozások letiltásához.
Böngészők közötti kompatibilitás
Míg a Bootstrap ezeket a stílusokat minden böngészőben alkalmazni fogja, az Internet Explorer 11 és régebbi verziói nem támogatják teljes mértékben az disabledattribútumot a <fieldset>. Használjon egyéni JavaScriptet a mezőkészlet letiltásához ezekben a böngészőkben.
Érvényesítés
Értékes, gyakorlatias visszajelzést adjon felhasználóinak a HTML5-űrlap érvényesítésével – minden támogatott böngészőnkben elérhető . Válasszon a böngésző alapértelmezett érvényesítési visszajelzései közül, vagy valósítson meg egyéni üzeneteket beépített osztályainkkal és kezdő JavaScript-kóddal.
Jelenleg egyéni érvényesítési stílusok használatát javasoljuk, mivel a natív böngésző alapértelmezett érvényesítési üzenetei nem minden böngészőben vannak kitéve következetesen a kisegítő technológiáknak (leginkább az asztali számítógépeken és mobileszközökön futó Chrome-ban).
Hogyan működik
A következőképpen működik az űrlapellenőrzés a Bootstrappel:
A HTML-űrlap érvényesítése a CSS két álosztályán keresztül történik, :invalidés :valid. <input>, <select>, és <textarea>elemekre vonatkozik .
A Bootstrap a :invalidés a :validstílusokat a szülőosztályba helyezi .was-validated, általában a <form>. Ellenkező esetben minden érték nélküli kötelező mező érvénytelenként jelenik meg az oldal betöltésekor. Ily módon kiválaszthatja, hogy mikor aktiválja őket (általában az űrlap beküldésének kísérlete után).
Az űrlap megjelenésének visszaállításához (például AJAX-ot használó dinamikus űrlap-beküldések esetén) az elküldés után távolítsa el újra az .was-validatedosztályt <form>.
Tartalékként osztályok használhatók a pszeudoosztályok helyett a .is-invalidszerveroldali érvényesítéshez . Nem igényelnek szülői osztályt..is-valid.was-validated
A CSS működésének korlátai miatt (jelenleg) nem alkalmazhatunk stílusokat <label>a DOM-ban az űrlapvezérlők elé kerülő stílusokra egyéni JavaScript segítsége nélkül.
Minden modern böngésző támogatja a kényszerérvényesítési API -t , egy sor JavaScript-módszert az űrlapvezérlők érvényesítésére.
A visszajelzési üzenetek használhatják a böngésző alapértelmezett beállításait (minden böngészőnél eltérőek, és CSS-en keresztül nem stílusozhatók), vagy egyéni visszajelzési stílusainkat további HTML és CSS segítségével.
Egyéni érvényességi üzeneteket adhat setCustomValiditymeg JavaScriptben.
Ezt szem előtt tartva tekintse meg az alábbi bemutatókat az egyéni űrlapérvényesítési stílusainkhoz, az opcionális szerveroldali osztályainkhoz és a böngésző alapértelmezett beállításaihoz.
Egyedi stílusok
Egyéni Bootstrap űrlap érvényesítő üzeneteihez hozzá kell adnia a novalidatelogikai attribútumot a <form>. Ezzel letiltja a böngésző alapértelmezett visszajelzési eszköztippjeit, de továbbra is hozzáférést biztosít a JavaScript űrlapellenőrző API-jához. Próbálja meg elküldeni az alábbi űrlapot; JavaScriptünk elfogja a küldés gombot, és visszajelzést küld Önnek.
Amikor megpróbál beküldeni, látni fogja az űrlapvezérlőkre alkalmazott :invalidés stílusokat.:valid
A böngésző alapértelmezett beállításai
Nem érdekelnek az egyéni érvényesítési visszajelzések vagy JavaScript írása az űrlap viselkedésének megváltoztatásához? Minden rendben, használhatja a böngésző alapértelmezett beállításait. Próbálja meg elküldeni az alábbi űrlapot. A böngészőtől és az operációs rendszertől függően kissé eltérő stílusú visszajelzést fog látni.
Bár ezek a visszajelzési stílusok nem alakíthatók CSS-sel, a visszajelzés szövegét továbbra is személyre szabhatja a JavaScript segítségével.
Szerver oldal
Javasoljuk, hogy használja a kliens oldali érvényesítést, de ha szerveroldalra van szüksége, az érvénytelen és érvényes űrlapmezőket a .is-invalidés gombokkal jelezheti .is-valid. Vegye figyelembe, hogy .invalid-feedbackezek az osztályok is támogatottak.
Támogatott elemek
Példaűrlapjaink natív szöveges szövegeket jelenítenek meg <input>fent, de az űrlapellenőrzési stílusok is rendelkezésre állnak az egyéni űrlapvezérlőinkhez.
Eszköztippek
Ha az űrlap elrendezése lehetővé teszi, az .{valid|invalid}-feedbackosztályokat .{valid|invalid}-tooltiposztályokra cserélheti, hogy az érvényesítési visszajelzéseket stílusos elemleírásban jelenítse meg. Ügyeljen arra, hogy szülője legyen position: relativerajta az eszköztipp elhelyezéséhez. Az alábbi példában oszloposztályaink már rendelkeznek ezzel, de a projektje alternatív beállítást igényelhet.
Egyedi űrlapok
A még nagyobb testreszabás és a böngészők közötti konzisztencia érdekében használja teljesen egyéni űrlapelemeinket a böngésző alapértelmezéseinek lecserélésére. Szemantikus és hozzáférhető jelölésekre épülnek, így megbízhatóan helyettesítik az alapértelmezett űrlapvezérlést.
Jelölőnégyzetek és rádiók
Mindegyik jelölőnégyzet és rádió egy a-ba van csomagolva <div>egy testvérrel <span>, hogy létrehozzuk egyéni vezérlőnket, valamint a <label>-t a kísérő szöveghez. Szerkezetileg ez ugyanaz a megközelítés, mint az alapértelmezett .form-check.
A testvérválasztót ( ~) használjuk minden <input>állapotunkhoz – például :checked– az egyéni űrlapjelző megfelelő stílusához. Az osztállyal kombinálva az .custom-control-labelegyes elemek szövegét is stílusozhatjuk a <input>' állapota alapján.
Elrejtjük az alapértelmezett értéket <input>, opacityés az és .custom-control-labelsegítségével új egyéni űrlapjelzőt építünk a ::beforehelyére ::after. Sajnos nem tudunk egyedit építeni pusztán az elemből, <input>mert a CSS- ek contentnem működnek ezen az elemen.
A bejelölt állapotokban az Open Iconic base64 beágyazott SVG ikonjait használjuk . Ez biztosítja számunkra a legjobb vezérlést a stílus és a pozicionálás tekintetében a böngészők és eszközök között.
Jelölőnégyzetek
Az egyéni jelölőnégyzetek a pszeudoosztályt is használhatják, :indeterminateha manuálisan állítják be JavaScripten keresztül (nincs elérhető HTML attribútum ennek megadásához).
Ha jQuery-t használ, valami ilyesmi elegendő:
Rádiók
Sorban
Tiltva
Az egyéni jelölőnégyzetek és a rádiók is letilthatók. Adja hozzá a disabledlogikai attribútumot, <input>és az egyéni jelző és címkeleírás stílusa automatikusan megtörténik.
Válassza ki a menüt
Az egyéni <select>menüknek csak egyéni osztályra van szükségük .custom-selectaz egyéni stílusok aktiválásához. Az egyéni stílusok a kezdeti megjelenésre korlátozódnak, és a böngésző korlátai miatt <select>nem módosíthatják az s-t.<option>
Kis és nagy egyéni kijelölések közül is választhat, hogy megfeleljenek a hasonló méretű szövegbeviteleinknek.
Az multipleattribútum is támogatott:
Ahogy az sizeattribútum is:
Hatótávolság
Hozzon létre egyéni <input type="range">vezérlőket a segítségével .custom-range. A sáv (a háttér) és a hüvelykujj (az érték) stílusa úgy van kialakítva, hogy a böngészőkben egyforma legyen. Mivel csak az IE és a Firefox támogatja a pálya „kitöltését” a hüvelykujj bal vagy jobb oldaláról, hogy vizuálisan jelezze a haladást, jelenleg nem támogatjuk.
A tartománybemenetek implicit értékkel rendelkeznek a minés max— 0és 100, ill. minA és maxattribútumokat használók számára új értékeket adhat meg .
Alapértelmezés szerint a tartománybemenetek egész értékekre „pattannak”. Ennek megváltoztatásához megadhat egy stepértéket. Az alábbi példában megduplázzuk a lépések számát a használatával step="0.5".
Fájl böngésző
A fájlbevitel a legdurvább a csoportban, és további JavaScriptet igényel, ha össze szeretné kötni a Fájl kiválasztása … funkcióval és a kiválasztott fájlnév szövegével.
Elrejtjük az alapértelmezett fájlt a következőn <input>keresztül opacity, és helyette a <label>. A gomb létrehozása és elhelyezése a következővel történik ::after. Végül kijelentjük, hogy a widthés heighta <input>megfelelő térközt helyezünk el a környező tartalomhoz.
A karakterláncok lefordítása vagy testreszabása
Az :lang()álosztályt arra használjuk, hogy lehetővé tegye a „Tallózás” szöveg más nyelvekre történő lefordítását. Írja felül vagy adjon hozzá bejegyzéseket a $custom-file-textSass változóhoz a megfelelő nyelvi címkével és lokalizált karakterláncokkal. Az angol húrok ugyanúgy testreszabhatók. Például a következőképpen adhat hozzá egy spanyol fordítást (a spanyol nyelv kódja: es):
Íme lang(es)a művelet a spanyol fordítás egyéni fájlbevitelével kapcsolatban:
A megfelelő szöveg megjelenítéséhez helyesen kell beállítania a dokumentum nyelvét (vagy annak részfáját). Ezt megteheti az elem langattribútuma<html> vagy a HTTP Content-Language-fejléc használatával , többek között.