Conto sareng tungtunan pamakean pikeun gaya kontrol formulir, pilihan perenah, sareng komponén khusus pikeun nyiptakeun rupa-rupa bentuk.
Ihtisar
Kadali formulir Bootstrap ngalegaan gaya formulir Rebooted kami sareng kelas. Anggo kelas ieu pikeun milih kana tampilan anu disaluyukeun pikeun rendering anu langkung konsisten dina panyungsi sareng alat.
Pastikeun ngagunakeun typeatribut anu pas dina sadaya input (contona, emailkanggo alamat email atanapi numberkanggo inpormasi numerik) pikeun ngamangpaatkeun kadali input anu langkung énggal sapertos verifikasi email, pilihan nomer, sareng seueur deui.
Ieu conto gancang pikeun nunjukkeun gaya formulir Bootstrap. Tetep maca pikeun dokuméntasi ngeunaan kelas anu diperyogikeun, perenah formulir, sareng seueur deui.
Kadali formulir
Kadali bentuk tékstual—sapertos <input>s, <select>s, sareng <textarea>s—digayakeun sareng .form-controlkelas. Kaasup gaya pikeun penampilan umum, kaayaan fokus, ukuran, sareng seueur deui.
Pastikeun pikeun ngajalajah bentuk custom kami pikeun gaya salajengna <select>s.
Pikeun input file, gentos .form-controlkana .form-control-file.
Ukuran
Atur jangkung ngagunakeun kelas kawas .form-control-lgna .form-control-sm.
Maca wungkul
Tambahkeun readonlyatribut boolean dina input pikeun nyegah modifikasi tina nilai input. Input ngan ukur dibaca sigana langkung hampang (sapertos input anu ditumpurkeun), tapi tetep kursor standar.
téks polos wungkul baca
Upami anjeun hoyong unsur- <input readonly>unsur dina bentuk anjeun ditataan salaku téks polos, paké .form-control-plaintextkelas pikeun ngaleungitkeun gaya médan formulir standar sareng ngawétkeun margin sareng padding anu leres.
Input rentang
Setel input rentang anu tiasa digulung sacara horisontal nganggo .form-control-range.
Kotak centang jeung radio
Kotak centang standar sareng radio dironjatkeun kalayan bantosan .form-check, kelas tunggal pikeun duanana jinis input anu ningkatkeun tata perenah sareng paripolah elemen HTML na . Kotak centang kanggo milih hiji atanapi sababaraha pilihan dina daptar, sedengkeun radio kanggo milih hiji pilihan tina seueur.
Kotak centang sareng radio ditumpurkeun dirojong. Atribut disabledbakal nerapkeun warna anu langkung hampang pikeun ngabantosan kaayaan input.
Kotak centang jeung tombol radio ngarojong validasi formulir dumasar HTML jeung nyadiakeun singket, labél diaksés. Sapertos kitu, <input>s sareng <label>s urang mangrupikeun unsur duduluran sabalikna tina <input>jeroeun a <label>. Ieu rada leuwih verbose anjeun kudu nangtukeun idjeung foratribut pakait jeung <input>jeung <label>.
Default (tumpuk)
Sacara standar, sajumlah kotak centang sareng radio anu janten dulur saharita bakal ditumpuk sacara vertikal sareng dipasihkeun sacara pas sareng .form-check.
Baris
Grup kotak centang atawa radio dina baris horizontal sarua ku nambahkeun .form-check-inlinekana sagala .form-check.
Tanpa labél
Tambihkeun .position-statickana input dina .form-checkanu henteu ngagaduhan téks labél. Inget pikeun tetep nyadiakeun sababaraha bentuk labél pikeun téknologi pitulung (contona, ngagunakeun aria-label).
Tata perenah
Kusabab Bootstrap lumaku display: blockjeung width: 100%ampir sakabéh kadali formulir urang, formulir bakal sacara standar tumpukan vertikal. kelas tambahan bisa dipaké pikeun rupa-rupa perenah ieu dina dasar per-formulir.
Ngabentuk grup
Kelas .form-groupmangrupikeun cara anu paling gampang pikeun nambihan sababaraha struktur kana bentuk. Eta nyadiakeun kelas fléksibel nu nyorong grup ditangtoskeun tina labél, kadali, téks pitulung pilihan, sarta olahtalatah validasi formulir. Sacara standar eta ngan lumaku margin-bottom, tapi nyokot gaya tambahan dina .form-inlinesakumaha diperlukeun. Paké eta kalawan <fieldset>s, <div>s, atawa ampir sagala elemen séjén.
Ngabentuk grid
Bentuk anu langkung kompleks tiasa diwangun nganggo kelas grid kami. Paké ieu pikeun perenah formulir anu merlukeun sababaraha kolom, lebar variatif, sarta pilihan alignment tambahan.
Ngabentuk baris
Anjeun oge bisa ngaganti .rowpikeun .form-row, variasi baris grid baku urang nu overrides talang kolom standar pikeun layouts tighter tur leuwih kompak.
Layout anu langkung kompleks ogé tiasa didamel nganggo sistem grid.
Bentuk horisontal
Jieun formulir horizontal kalawan grid ku nambahkeun .rowkelas pikeun ngabentuk grup sarta ngagunakeun .col-*-*kelas pikeun nangtukeun lebar labél jeung kadali Anjeun. Pastikeun pikeun nambahkeun .col-form-labelkana s Anjeun <label>ogé ngarah nuju vertikal dipuseurkeun jeung kontrol formulir pakait maranéhanana.
Kadang-kadang, anjeun panginten kedah nganggo utilitas margin atanapi padding pikeun nyiptakeun alignment anu sampurna anu anjeun peryogikeun. Salaku conto, kami parantos ngahapus padding-toplabél input radio anu ditumpuk pikeun nyaluyukeun garis dasar téks.
Ukuran labél formulir horisontal
Pastikeun anjeun nganggo .col-form-label-smatanapi .col-form-label-lgka anjeun <label>atanapi ka anjeun <legend>pikeun leres nuturkeun ukuran .form-control-lgsareng .form-control-sm.
Ukuran kolom
Ditémbongkeun saperti dina conto saméméhna, sistem grid kami ngidinan Anjeun pikeun nempatkeun sagala angka .cols dina hiji .rowatawa .form-row. Aranjeunna bakal ngabagi lebar anu sayogi di antara aranjeunna. Anjeun ogé tiasa milih sawaréh kolom anjeun pikeun nyandak langkung seueur atanapi kirang rohangan, sedengkeun sésa-sésa .colngabagi sésana, kalayan kelas kolom khusus sapertos .col-7.
Ukuran otomatis
Conto di handap ngagunakeun utilitas flexbox pikeun vertikal puseur eusi na robah .coljadi .col-autoyén kolom anjeun ukur nyokot up saloba spasi sakumaha diperlukeun. Nempatkeun cara sejen, ukuran kolom sorangan dumasar kana eusi.
Anjeun teras tiasa remix éta sakali deui sareng kelas kolom ukuran-spésifik.
Paké .form-inlinekelas pikeun mintonkeun runtuyan labél, kontrol formulir, sarta tombol dina baris horizontal tunggal. Kadali formulir dina formulir inline rada béda ti kaayaan standarna.
Kontrol nyaéta display: flex, ngancurkeun rohangan bodas HTML sareng ngamungkinkeun anjeun nyayogikeun kontrol alignment sareng utilitas jarak sareng flexbox .
Kadali sareng grup input nampi width: autopikeun nimpa standar Bootstrap width: 100%.
Kadali ngan muncul inline dina viewports nu lega sahenteuna 576px pikeun akun pikeun viewports sempit dina alat nu bagerak.
Anjeun bisa jadi kudu sacara manual alamat lebar tur alignment kontrol formulir individu kalawan utilitas spasi (sakumaha ditémbongkeun di handap). Anu pamungkas, pastikeun pikeun salawasna kaasup a <label>kalawan unggal kontrol formulir, malah lamun kudu nyumputkeun eta ti datang non-screenreader kalawan .sr-only.
Kadali bentuk khusus sareng pilihan ogé dirojong.
Alternatif pikeun labél disumputkeun
Téknologi anu ngabantosan sapertos pamiarsa layar bakal gaduh masalah sareng formulir anjeun upami anjeun henteu ngalebetkeun labél pikeun unggal input. Pikeun bentuk inline ieu, anjeun tiasa nyumputkeun labél nganggo .sr-onlykelas. Aya deui metode alternatif pikeun nyayogikeun labél pikeun téknologi pitulung, sapertos aria-label, aria-labelledbyatanapi titleatribut. Upami teu aya ieu, téknologi pitulung tiasa nganggo placeholderatribut, upami aya, tapi perhatikeun yén panggunaan placeholdersalaku gaganti pikeun metode panyiri sanés henteu disarankeun.
Pitulung téks
Téks pitulung tingkat blok dina formulir bisa dijieun maké .form-text(saméméhna katelah .help-blockdina v3). Téks pitulung inline tiasa dilaksanakeun sacara fleksibel nganggo unsur HTML inline sareng kelas utiliti sapertos .text-muted.
Ngaitkeun téks pitulung sareng kadali formulir
Pitulung téks kudu eksplisit pakait sareng kontrol formulir eta relates to make aria-describedbyatribut. Ieu bakal mastikeun yén téknologi pitulung-sapertos pamiarsa layar-bakal ngumumkeun téks pitulung ieu nalika pangguna museurkeun atanapi ngalebetkeun kadali.
Pitulung téks di handap inputs bisa styled kalawan .form-text. Kelas ieu kalebet display: blocksareng nambihan sababaraha margin luhur pikeun jarak anu gampang tina input di luhur.
Sandi anjeun kedah panjangna 8-20 karakter, ngandung hurup sareng angka, sareng henteu kedah ngandung spasi, karakter khusus, atanapi emoji.
Téks inline tiasa nganggo unsur HTML inline naon waé (naha éta <small>, <span>, atanapi anu sanés) kalayan henteu langkung ti kelas utiliti.
Bentuk ditumpurkeun
Tambihkeun disabledatribut boolean dina input pikeun nyegah interaksi pangguna sareng ngajantenkeun langkung hampang.
Tambahkeun disabledatribut ka a <fieldset>nganonaktipkeun sakabeh kadali dina.
Caveat kalawan jangkar
Sacara standar, panyungsi bakal ngubaran sagala kadali formulir asli ( <input>, <select>sarta <button>elemen) di jero a <fieldset disabled>salaku ditumpurkeun, nyegah duanana keyboard jeung interaksi mouse on aranjeunna. Sanajan kitu, lamun formulir Anjeun ogé ngawengku <a ... class="btn btn-*">elemen, ieu ngan bakal dibéré gaya pointer-events: none. Salaku nyatet dina bagian ngeunaan kaayaan ditumpurkeun pikeun tombol (sarta husus dina sub-bagian pikeun elemen jangkar), sipat CSS ieu teu acan standarisasi tur teu dirojong sapinuhna dina Internet Explorer 10, sarta moal nyegah pamaké keyboard pikeun jadi. tiasa museurkeun atanapi ngaktipkeun tautan ieu. Janten aman, paké JavaScript khusus pikeun nganonaktipkeun tautan sapertos kitu.
Kasaluyuan cross-browser
Samentara Bootstrap bakal nerapkeun gaya ieu dina sadaya panyungsi, Internet Explorer 11 sareng di handap henteu ngadukung sapinuhna disabledatribut dina <fieldset>. Anggo JavaScript khusus pikeun nganonaktipkeun set lapangan dina panyungsi ieu.
Validasi
Nyadiakeun eupan balik anu berharga jeung bisa dipilampah ka pamaké anjeun kalawan validasi formulir HTML5– sadia dina sakabéh panyungsi anu dirojong ku kami . Pilih tina eupan balik validasi standar browser, atanapi laksanakeun pesen khusus sareng kelas anu diwangun sareng JavaScript ngamimitian.
Ayeuna kami nyarankeun ngagunakeun gaya validasi khusus, sabab seratan validasi standar browser asli henteu terus-terusan kakeunaan téknologi pitulung dina sadaya panyungsi (pangpangna, Chrome dina desktop sareng mobile).
Kumaha gawéna
Ieu kumaha validasi formulir tiasa dianggo sareng Bootstrap:
Validasi formulir HTML diterapkeun via dua kelas pseudo CSS, :invalidsareng :valid. Ieu lumaku pikeun <input>, <select>, sarta <textarea>elemen.
Bootstrap wengkuan :invalidsareng :validgaya ka kelas indungna .was-validated, biasana dilarapkeun kana <form>. Upami teu kitu, widang naon waé anu dibutuhkeun tanpa niléy némbongan sah dina beban halaman. Ku cara ieu, anjeun tiasa milih iraha ngaktipkeunana (biasana saatos kiriman formulir dicoba).
Pikeun ngareset penampilan formulir (contona, dina kasus kiriman formulir dinamis maké AJAX), cabut .was-validatedkelas ti <form>deui sanggeus kaluman.
Salaku fallback a, .is-invalidsarta .is-validkelas bisa dipaké gaganti pseudo-kelas pikeun validasi sisi server . Aranjeunna teu merlukeun .was-validatedkelas indungna.
Kusabab konstrain dina cara CSS jalan, urang teu bisa (ayeuna) nerapkeun gaya ka <label>nu asalna saméméh kontrol formulir di DOM tanpa bantuan custom JavaScript.
Sadaya panyungsi modéren ngarojong API validasi konstrain , runtuyan métode JavaScript pikeun ngavalidasi kontrol formulir.
Talatah eupan balik bisa ngagunakeun standar browser (béda pikeun tiap browser, sarta unstylable via CSS) atawa gaya eupan balik custom kami kalawan tambahan HTML jeung CSS.
Anjeun tiasa nyayogikeun pesen validitas khusus setCustomValiditydina JavaScript.
Kalayan émut éta, pertimbangkeun demo di handap ieu pikeun gaya validasi formulir khusus urang, kelas sisi server opsional, sareng standar browser.
gaya custom
Pikeun pesen validasi formulir Bootstrap khusus, anjeun kedah nambihan novalidateatribut boolean kana file <form>. Ieu nganonaktipkeun tip alat umpan balik standar browser, tapi tetep nyayogikeun aksés kana API validasi formulir dina JavaScript. Coba kirimkeun formulir di handap; JavaScript urang bakal intercept tombol kirimkeun jeung relay eupan balik ka anjeun. Nalika nyobian ngalebetkeun, anjeun bakal ningali gaya :invalidsareng :validgaya anu diterapkeun kana kadali formulir anjeun.
Gaya eupan balik khusus nerapkeun warna khusus, wates, gaya fokus, sareng ikon latar pikeun komunikasi anu langkung saé. Ikon latar pikeun <select>s ngan sadia kalawan .custom-select, sarta henteu .form-control.
Panyungsi standar
Teu kabetot dina pesen eupan balik validasi custom atawa nulis JavaScript pikeun ngarobah kabiasaan formulir? Sadayana saé, anjeun tiasa nganggo standar browser. Coba kirimkeun formulir di handap. Gumantung kana browser sareng OS anjeun, anjeun bakal ningali gaya eupan balik anu rada béda.
Bari gaya eupan balik ieu teu bisa gaya kalawan CSS, anjeun masih bisa ngaluyukeun téks eupan balik ngaliwatan JavaScript.
Sisi server
Kami ngarékoméndasikeun nganggo validasi sisi klien, tapi upami anjeun peryogi validasi sisi server, anjeun tiasa nunjukkeun widang formulir anu teu valid sareng valid .is-invalidsareng .is-valid. Catet yén .invalid-feedbackogé dirojong ku kelas ieu.
Unsur dirojong
Gaya validasi sayogi pikeun kadali formulir sareng komponén ieu:
<input>s jeung <textarea>s kalawan .form-control(kaasup nepi ka hiji .form-controldina grup input)
<select>s kalawan .form-controlatawa.custom-select
.form-checks
.custom-checkboxs jeung .custom-radios
.custom-file
Tooltips
Upami perenah formulir anjeun ngamungkinkeun, anjeun tiasa ngagentos .{valid|invalid}-feedbackkelas pikeun .{valid|invalid}-tooltipkelas pikeun ningalikeun eupan balik validasi dina tooltip gaya. Pastikeun gaduh indungna sareng position: relativeéta pikeun posisi tooltip. Dina conto di handap, kelas kolom kami geus boga ieu, tapi proyék anjeun bisa merlukeun hiji setelan alternatif.
Nyaluyukeun
Kaayaan validasi tiasa disaluyukeun via Sass sareng $form-validation-statespeta. Tempatna dina _variables.scssfile kami, peta Sass ieu digulung pikeun ngahasilkeun kaayaan standar valid/ invalidvalidasi. Kaasup peta nested pikeun ngaropéa warna jeung ikon unggal kaayaan urang. Sanaos henteu aya nagara sanés anu dirojong ku panyungsi, anu nganggo gaya khusus tiasa gampang nambihan eupan balik bentuk anu langkung kompleks.
Punten dicatet yén kami henteu nyarankeun ngarobih nilai ieu tanpa ogé ngarobih form-validation-statemixin.
formulir custom
Pikeun langkung kustomisasi sareng konsistensi panyungsi silang, paké elemen formulir khusus kami pikeun ngagentos standar browser. Éta diwangun dina luhureun markup semantik sareng tiasa diaksés, janten aranjeunna gaganti padet pikeun kontrol formulir standar.
Kotak centang jeung radio
Unggal kotak centang jeung radio <input>jeung <label>papasangan dibungkus dina hiji <div>nyieun kontrol custom urang. Sacara stuktur, ieu pendekatan anu sami sareng standar urang .form-check.
Urang make pamilih duduluran ( ~) pikeun sakabéh <input>nagara bagian urang-kawas - :checkedmun leres gaya indikator formulir custom urang. Lamun digabungkeun jeung .custom-control-labelkelas, urang ogé bisa gaya téks pikeun tiap item dumasar kana kaayaan <input>'s.
Kami nyumputkeun standar <input>sareng opacitynganggo .custom-control-labelpikeun ngawangun indikator bentuk khusus anyar dina tempatna ::beforesareng ::after. Hanjakal urang teu bisa ngawangun hiji custom ti ngan <input>sabab CSS urang contentteu dianggo dina unsur éta.
Dina kaayaan dipariksa, kami nganggo base64 embedded ikon SVG ti Open Iconic . Ieu nyadiakeun kami kadali pangalusna pikeun styling jeung posisi sakuliah browser jeung alat.
Kotak centang
Kotak centang custom ogé bisa ngagunakeun :indeterminatekelas pseudo lamun diatur sacara manual via JavaScript (teu aya atribut HTML sadia pikeun nangtukeun eta).
Upami anjeun nganggo jQuery, hal sapertos kieu kedah cekap:
Radio-radio
Baris
ditumpurkeun
Kotak centang khusus sareng radio ogé tiasa ditumpurkeun. Tambihkeun disabledatribut boolean kana <input>sareng indikator khusus sareng déskripsi labél bakal otomatis digayakeun.
Saklar
A switch boga markup tina kotak centang custom tapi ngagunakeun .custom-switchkelas pikeun ngajadikeun switch toggle. Saklar ogé ngarojong disabledatribut.
Pilih menu
ménu custom <select>perlu ngan hiji kelas custom, .custom-selectpikeun memicu gaya custom. gaya custom dugi ka <select>penampilan awal 's sarta teu bisa ngaropéa <option>s alatan watesan browser.
Anjeun ogé tiasa milih tina pilihan khusus leutik sareng ageung pikeun cocog sareng input téks ukuran anu sami.
Atribut multipleieu ogé dirojong:
Salaku sizeatribut:
Rentang
Jieun <input type="range">kadali custom kalawan .custom-range. Lagu (kasang tukang) sareng jempol (nilai) duanana ditata supados sami dina panyungsi. Kusabab ngan ukur IE sareng Firefox anu ngadukung "ngeusian" laguna ti kénca atanapi katuhu jempol minangka sarana pikeun nunjukkeun kamajuan sacara visual, ayeuna urang henteu ngadukung éta.
Input rentang gaduh nilai implisit pikeun minsareng max- 0sareng 100, masing-masing. Anjeun tiasa netepkeun nilai anyar pikeun anu nganggo atribut minsareng .max
Sacara standar, rentang inputs "snap" kana nilai integer. Pikeun ngarobah ieu, anjeun bisa nangtukeun stepnilai a. Dina conto di handap, urang gandakeun jumlah léngkah ku ngagunakeun step="0.5".
File browser
Plugin anu disarankeun pikeun ngahirupkeun input file khusus: bs-custom-file-input , éta anu kami anggo ayeuna di dieu dina dokumén kami.
Input file mangrupikeun kebat anu paling pikasieuneun sareng ngabutuhkeun JavaScript tambahan upami anjeun hoyong ngaitkeunana sareng fungsional Pilih file… sareng téks nami file anu dipilih.
Urang nyumputkeun file standar <input>via opacityna gantina gaya <label>. Tombol dihasilkeun sarta diposisikan kalawan ::after. Panungtungan, urang ngadéklarasikeun a widthna heighton <input>pikeun spasi ditangtoskeun pikeun eusi sabudeureun.
Narjamahkeun atawa ngaropéa senar kalawan SCSS
Kelas :lang()pseudo digunakeun pikeun ngidinan pikeun narjamahkeun téks "Browse" kana basa séjén. Override atanapi tambahkeun éntri kana variabel Sass sareng tag basa$custom-file-text anu relevan sareng senar anu dilokalkeun. Senar Inggris tiasa disaluyukeun ku cara anu sami. Contona, ieu kumaha carana nambahkeun tarjamah Spanyol (kode basa Spanyol nyaéta ):es
Ieu lang(es)tindakan dina input file khusus pikeun tarjamahan Spanyol:
Anjeun kedah nyetél basa dokumén anjeun (atanapi subtree) leres supados téks anu leres tiasa ditingalikeun. Ieu tiasa dilakukeun nganggo atribut langdina unsur <html>atanapi Content-Languagelulugu HTTP , diantara metode anu sanés.
Narjamahkeun atanapi nyaluyukeun senar nganggo HTML
Bootstrap ogé nyadiakeun cara pikeun narjamahkeun téks "Browse" dina HTML jeung data-browseatribut nu bisa ditambahkeun kana labél input custom (conto dina basa Walanda):