Conto lan pedoman panggunaan kanggo gaya kontrol formulir, opsi tata letak, lan komponen khusus kanggo nggawe macem-macem formulir.
Ringkesan
Kontrol formulir Bootstrap nggedhekake gaya formulir Reboot karo kelas. Gunakake kelas kasebut kanggo milih tampilan sing disesuaikan kanggo rendering sing luwih konsisten ing browser lan piranti.
Pesthekake nggunakake typeatribut sing cocog ing kabeh input (contone, emailkanggo alamat email utawa numberinformasi numerik) kanggo njupuk kauntungan saka kontrol input sing luwih anyar kayata verifikasi email, pilihan nomer, lan liya-liyane.
Mangkene conto cepet kanggo nduduhake gaya formulir Bootstrap. Terus maca kanggo dokumentasi babagan kelas sing dibutuhake, tata letak formulir, lan liya-liyane.
Kontrol formulir
Kontrol wangun tekstual-kaya <input>s, <select>s, lan <textarea>s-ditata karo .form-controlkelas. Kalebu gaya kanggo tampilan umum, status fokus, ukuran, lan liya-liyane.
Aja manawa kanggo njelajah wangun adat kita kanggo gaya luwih <select>s.
Kanggo input file, ganti .form-controlmenyang .form-control-file.
ukuran
Setel dhuwur nggunakake kelas kaya .form-control-lglan .form-control-sm.
Namung diwaca
Tambah readonlyatribut boolean ing input kanggo nyegah modifikasi nilai input. Input mung diwaca katon luwih entheng (kaya input sing dipateni), nanging tetep kursor standar.
Waca teks biasa
Yen sampeyan pengin duwe <input readonly>unsur ing wangun gaya minangka teks kosong, gunakake .form-control-plaintextkelas kanggo mbusak gaya lapangan formulir standar lan ngreksa wates lan padding sing bener.
Input Range
Setel input kisaran sing bisa digulung kanthi horisontal nggunakake .form-control-range.
Kothak lan radio
Kothak lan radio standar ditambahake kanthi bantuan .form-check, kelas siji kanggo loro jinis input sing nambah tata letak lan prilaku unsur HTML . Kothak centhang kanggo milih siji utawa sawetara opsi ing dhaptar, dene radio kanggo milih siji opsi saka akeh.
Kothak centhang lan radio sing dipateni didhukung, nanging kanggo nyedhiyakake not-allowedkursor ing hover saka wong tuwa <label>, sampeyan kudu nambah disabledatribut menyang .form-check-input. Atribut sing dipateni bakal menehi warna sing luwih entheng kanggo nuduhake status input.
Kothak centhang lan panggunaan radio dibangun kanggo ndhukung validasi formulir adhedhasar HTML lan menehi label sing ringkes lan bisa diakses. Dadi, <input>s lan <label>s kita minangka unsur sedulur minangka lawan saka <input>ing a <label>. Iki rada luwih verbose amarga sampeyan kudu nemtokake idlan foratribut kanggo nggandhengake <input>lan <label>.
Default (ditumpuk)
Kanthi gawan, sawetara kothak centhang lan radio sing dadi sedulur langsung bakal ditumpuk vertikal lan diwenehi jarak kanthi .form-check.
Inline
Klompok kothak centhang utawa radio ing baris horisontal sing padha kanthi nambahake .form-check-inline..form-check
Tanpa label
Tambah .position-staticmenyang input .form-checksing ora ana teks label. Elinga yen isih menehi sawetara wujud label kanggo teknologi bantu (contone, nggunakake aria-label).
Tata letak
Wiwit Bootstrap ditrapake display: blocklan width: 100%meh kabeh kontrol formulir, formulir bakal ditumpuk kanthi vertikal. Kelas tambahan bisa digunakake kanggo macem-macem tata letak iki ing basis saben wangun.
Nggawe kelompok
Kelas .form-groupminangka cara paling gampang kanggo nambah sawetara struktur menyang formulir. Iki nyedhiyakake kelas fleksibel sing nyengkuyung klompok label, kontrol, teks pitulung opsional, lan olahpesen validasi formulir. Kanthi gawan, iku mung ditrapake margin-bottom, nanging njupuk gaya tambahan yen .form-inlineperlu. Gunakake karo <fieldset>s, <div>s, utawa meh wae unsur liyane.
Bentuk kothak
Wangun sing luwih rumit bisa dibangun kanthi nggunakake kelas kothak. Gunakake iki kanggo tata letak formulir sing mbutuhake pirang-pirang kolom, jembar sing beda-beda, lan opsi keselarasan tambahan.
Formulir baris
Sampeyan uga bisa ngganti .rowkanggo .form-row, variasi saka baris kothak standar kita sing overrides talang kolom standar kanggo noto tighter lan luwih kompak.
Tata letak sing luwih rumit uga bisa digawe nganggo sistem kothak.
Bentuk horisontal
Nggawe formulir horisontal kanthi kothak kanthi nambahake .rowkelas kanggo mbentuk grup lan nggunakake .col-*-*kelas kanggo nemtokake jembar label lan kontrol sampeyan. Pesthekake kanggo nambah .col-form-labelmenyang <label>s uga supaya lagi vertikal tengah karo kontrol wangun gadhah sing.
Kadhangkala, sampeyan bisa uga kudu nggunakake utilitas margin utawa padding kanggo nggawe keselarasan sampurna sing sampeyan butuhake. Contone, kita wis mbusak padding-toplabel input radio sing ditumpuk kanggo luwih nyelarasake garis dasar teks.
Ukuran label formulir horisontal
Dadi manawa kanggo nggunakake .col-form-label-smutawa .col-form-label-lgkanggo <label>s utawa <legend>s kanggo bener tindakake ukuran .form-control-lglan .form-control-sm.
Ukuran kolom
Kaya sing dituduhake ing conto sadurunge, sistem kothak ngidini sampeyan nyelehake nomer .cols ing a .rowutawa .form-row. Padha bakal pamisah jembaré kasedhiya merata antarane wong-wong mau. Sampeyan uga bisa milih subset saka kolom kanggo njupuk luwih utawa kurang spasi, dene .cols isih padha pamisah liyane, karo kelas kolom tartamtu kaya .col-7.
Ukuran otomatis
Conto ing ngisor iki nggunakake utilitas flexbox kanggo vertikal tengah isi lan owah-owahan .colsupaya .col-autokolom sampeyan mung njupuk akeh spasi yen perlu. Kanthi cara liya, ukuran kolom kasebut dhewe adhedhasar isi.
Sampeyan banjur bisa nyampur maneh karo kelas kolom khusus ukuran.
Gunakake .form-inlinekelas kanggo nampilake seri label, kontrol formulir, lan tombol ing baris horisontal siji. Kontrol formulir ing formulir inline rada beda karo status standar.
Kontrol yaiku display: flex, ngrusak spasi putih HTML lan ngidini sampeyan nyedhiyakake kontrol keselarasan karo keperluan spasi lan flexbox .
Kontrol lan grup input nampa width: autokanggo ngganti standar Bootstrap width: 100%.
Kontrol mung katon inline ing viewport sing ambane paling sethithik 576px kanggo akun viewports sing sempit ing piranti seluler.
Sampeyan bisa uga kudu kanthi manual alamat jembaré lan Alignment saka kontrol wangun individu karo keperluan spasi (minangka kapacak ing ngisor iki). Pungkasan, manawa sampeyan tansah nyakup a <label>karo saben kontrol formulir, sanajan sampeyan kudu ndhelikake saka pengunjung non-screenreader kanthi .sr-only.
Kontrol lan pilihan formulir khusus uga didhukung.
Alternatif kanggo label sing didhelikake
Teknologi bantu kayata maca layar bakal duwe masalah karo formulir sampeyan yen sampeyan ora nyakup label kanggo saben input. Kanggo formulir inline iki, sampeyan bisa ndhelikake label nggunakake .sr-onlykelas. Ana cara alternatif liyane kanggo nyedhiyakake label kanggo teknologi bantu, kayata aria-label, aria-labelledbyutawa titleatribut. Yen ora ana siji-sijine, teknologi pitulung bisa nggunakake placeholderatribut kasebut, yen ana, nanging elinga yen nggunakake placeholderminangka panggantos kanggo metode label liyane ora disaranake.
Teks bantuan
Teks bantuan tingkat blok ing formulir bisa digawe nggunakake .form-text(sadurunge dikenal .help-blocking v3). Teks bantuan inline bisa dileksanakake kanthi fleksibel nggunakake unsur HTML inline lan kelas utilitas kaya .text-muted.
Nggayutake teks pitulung karo kontrol formulir
Teks pitulung kudu digandhengake kanthi jelas karo kontrol formulir sing ana gandhengane karo nggunakake aria-describedbyatribut kasebut. Iki bakal mesthekake yen teknologi pitulung-kayata layar maca-bakal ngumumake teks bantuan iki nalika pangguna fokus utawa mlebu kontrol.
Teks bantuan ing ngisor iki bisa ditata nganggo .form-text. Kelas iki kalebu display: blocklan nambah sawetara wates ndhuwur kanggo gampang spasi saka input ndhuwur.
Tembung sandhi sampeyan kudu dawane 8-20 karakter, ngemot huruf lan angka, lan ora ngemot spasi, karakter khusus, utawa emoji.
Teks inline bisa nggunakake unsur HTML inline sing khas (kaya <small>, <span>, utawa liya-liyane) kanthi ora luwih saka kelas sarana.
Formulir sing dipatèni
Tambah disabledatribut boolean ing input kanggo nyegah interaksi pangguna lan nggawe katon luwih entheng.
Tambah disabledatribut menyang a <fieldset>mateni kabeh kontrol ing.
Caveat karo jangkar
Kanthi gawan, browser bakal nganggep kabeh kontrol wangun asli ( <input>, <select>lan <button>unsur) ing njero <fieldset disabled>minangka dipatèni, nyegah interaksi keyboard lan mouse. Nanging, yen formulir sampeyan uga kalebu <a ... class="btn btn-*">unsur, iki mung bakal diwenehi gaya pointer-events: none. Kaya sing kacathet ing bagean babagan status dipatèni kanggo tombol (lan khusus ing sub-bagean kanggo unsur anchor), properti CSS iki durung standar lan durung didhukung kanthi lengkap ing Internet Explorer 10, lan ora bakal nyegah pangguna keyboard dadi. bisa fokus utawa ngaktifake pranala kasebut. Supaya aman, gunakake JavaScript khusus kanggo mateni tautan kasebut.
Kompatibilitas lintas-browser
Nalika Bootstrap bakal ngetrapake gaya kasebut ing kabeh browser, Internet Explorer 11 lan ing ngisor iki ora ndhukung disabledatribut kasebut kanthi lengkap <fieldset>. Gunakake JavaScript khusus kanggo mateni set lapangan ing browser kasebut.
Validasi
Nyedhiyakake umpan balik sing migunani lan bisa ditindakake kanggo pangguna kanthi validasi formulir HTML5– kasedhiya ing kabeh browser sing didhukung . Pilih saka umpan balik validasi standar browser, utawa laksanakake pesen khusus karo kelas sing dibangun lan JavaScript wiwitan.
Saiki disaranake nggunakake gaya validasi khusus, amarga pesen validasi standar browser asli ora terus-terusan kapapar teknologi bantu ing kabeh browser (utamane, Chrome ing desktop lan seluler).
Cara kerjane
Mangkene carane validasi formulir bisa digunakake karo Bootstrap:
Validasi formulir HTML ditrapake liwat rong kelas pseudo CSS, :invalidlan :valid. Iku ditrapake kanggo <input>, <select>, lan <textarea>unsur.
Bootstrap nyakup gaya :invalidlan gaya menyang kelas :validinduk , biasane ditrapake ing . Yen ora, kolom sing dibutuhake tanpa nilai bakal katon ora sah nalika mbukak kaca. Kanthi cara iki, sampeyan bisa milih kapan arep ngaktifake (biasane sawise pengajuan formulir dicoba)..was-validated<form>
Kanggo ngreset tampilan formulir (contone, ing kasus kiriman formulir dinamis nggunakake AJAX), mbusak .was-validatedkelas saka <form>maneh sawise pengajuan.
Minangka fallback, .is-invalidlan .is-validkelas bisa digunakake tinimbang pseudo-kelas kanggo validasi sisih server . Dheweke ora mbutuhake .was-validatedkelas wong tuwa.
Amarga alangan babagan cara CSS bisa digunakake, kita ora bisa (saiki) ngetrapake gaya menyang a <label>sing sadurunge kontrol formulir ing DOM tanpa bantuan JavaScript khusus.
Kabeh browser modern ndhukung API validasi kendala , seri metode JavaScript kanggo validasi kontrol formulir.
Pesen umpan balik bisa uga nggunakake standar browser (beda kanggo saben browser, lan ora bisa diatur liwat CSS) utawa gaya umpan balik khusus kita kanthi HTML lan CSS tambahan.
Sampeyan bisa menehi pesen validitas khusus setCustomValiditying JavaScript.
Kanthi atine, nimbang demo ing ngisor iki kanggo gaya validasi formulir khusus, kelas sisih server opsional, lan standar browser.
Gaya khusus
Kanggo pesen validasi formulir Bootstrap khusus, sampeyan kudu nambah novalidateatribut boolean menyang <form>. Iki mateni tooltip umpan balik standar browser, nanging isih menehi akses menyang API validasi formulir ing JavaScript. Coba kirim formulir ing ngisor iki; JavaScript kita bakal nyegat tombol kirim lan ngirim umpan balik kanggo sampeyan.
Nalika nyoba ngirim, sampeyan bakal weruh :invalidlan :validgaya sing ditrapake kanggo kontrol formulir.
Default browser
Ora kasengsem ing pesen umpan balik validasi khusus utawa nulis JavaScript kanggo ngganti prilaku formulir? Kabeh apik, sampeyan bisa nggunakake standar browser. Coba kirim formulir ing ngisor iki. Gumantung ing browser lan OS sampeyan, sampeyan bakal weruh gaya umpan balik sing rada beda.
Nalika gaya umpan balik iki ora bisa ditata nganggo CSS, sampeyan isih bisa ngatur teks umpan balik liwat JavaScript.
Sisih server
Disaranake nggunakake validasi sisih klien, nanging yen sampeyan mbutuhake sisih server, sampeyan bisa nunjukake kolom formulir sing ora bener lan bener karo .is-invalidlan .is-valid. Elinga yen .invalid-feedbackuga didhukung karo kelas kasebut.
Unsur sing didhukung
Formulir conto kita nuduhake teks asli <input>ing ndhuwur, nanging gaya validasi formulir uga kasedhiya kanggo kontrol formulir khusus.
Tooltips
Yen tata letak formulir sampeyan ngidini, sampeyan bisa ngganti .{valid|invalid}-feedbackkelas kanggo .{valid|invalid}-tooltipkelas kanggo nampilake umpan balik validasi ing tooltip gaya. Priksa manawa sampeyan duwe wong tuwa position: relativesing ana kanggo posisi tooltip. Ing conto ing ngisor iki, kelas kolom kita wis duwe, nanging proyek sampeyan mbutuhake persiyapan alternatif.
Wangun khusus
Kanggo kustomisasi lan konsistensi browser sing luwih akeh, gunakake unsur formulir khusus kanggo ngganti standar browser. Dibangun ing ndhuwur markup semantik lan bisa diakses, dadi panggantos sing kuat kanggo kontrol formulir standar.
Kothak lan radio
Saben kothak centhang lan radio wis kebungkus a <div>karo sedulur <span>kanggo nggawe kontrol adat kita lan <label>kanggo teks gawan. Secara struktural, iki minangka pendekatan sing padha karo standar kita .form-check.
Kita nggunakake pamilih sedulur ( ~) kanggo kabeh <input>negara kita - kaya - kanggo :checkedgaya indikator formulir khusus kita. Nalika digabungake karo .custom-control-labelkelas, kita uga bisa gaya teks kanggo saben item adhedhasar <input>'s negara.
Kita ndhelikake standar <input>karo opacitylan nggunakake .custom-control-labelkanggo mbangun Indikator wangun adat anyar ing panggonan karo ::beforelan ::after. Sayange, kita ora bisa mbangun adat saka mung <input>amarga CSS contentora bisa digunakake ing unsur kasebut.
Ing negara sing wis dicenthang, kita nggunakake lambang SVG sing ditempelake base64 saka Open Iconic . Iki menehi kontrol paling apik kanggo gaya lan posisi ing browser lan piranti.
kothak centhang
Kothak centhang khusus uga bisa nggunakake :indeterminatekelas pseudo nalika disetel kanthi manual liwat JavaScript (ora ana atribut HTML sing kasedhiya kanggo nemtokake).
Yen sampeyan nggunakake jQuery, kaya iki kudu cukup:
Radios
Inline
dipatèni
Kothak lan radio khusus uga bisa dipateni. Tambah disabledatribut boolean menyang <input>lan indikator khusus lan deskripsi label bakal ditata kanthi otomatis.
Pilih menu
Menu <select>khusus mung butuh kelas khusus, .custom-selectkanggo micu gaya khusus. Gaya khusus diwatesi ing <select>tampilan awal lan ora bisa ngowahi <option>s amarga watesan browser.
Sampeyan uga bisa milih saka pilihan khusus cilik lan gedhe kanggo cocog karo input teks ukuran sing padha.
Atribut multipleuga didhukung:
Minangka sizeatribut kasebut:
Range
Gawe <input type="range">kontrol khusus nganggo .custom-range. Trek (latar mburi) lan jempol (nilai) loro-lorone ditata supaya katon padha ing browser. Amarga mung IE lan Firefox sing ndhukung "ngisi" trek saka kiwa utawa tengen jempol minangka sarana kanggo nuduhake kemajuan kanthi visual, saiki kita ora ndhukung.
input Range duwe nilai implisit kanggo minlan max- 0lan 100, mungguh. Sampeyan bisa nemtokake nilai anyar kanggo sing nggunakake atribut minlan .max
Kanthi gawan, sawetara input "snap" menyang nilai integer. Kanggo ngganti iki, sampeyan bisa nemtokake stepnilai. Ing conto ing ngisor iki, kita pindho jumlah langkah kanthi nggunakake step="0.5".
File browser
Input file sing paling gnarly saka Bunch lan mbutuhake JavaScript tambahan yen sampeyan pengin pancing munggah karo fungsi Pilih file… lan milih jeneng file teks.
Kita ndhelikake file standar <input>liwat opacitylan tinimbang gaya <label>. Tombol digawe lan dipanggonke karo ::after. Pungkasan, kita ngumumake a widthlan heighting <input>kanggo spasi sing tepat kanggo isi lingkungan.
Nerjemahake utawa ngatur senar
Kelas :lang()pseudo digunakake kanggo ngidini nerjemahake teks "Browse" menyang basa liya. Ganti utawa tambahake entri menyang $custom-file-textvariabel Sass kanthi tag basa sing cocog lan senar sing dilokalisasi. Senar Inggris bisa disesuaikan kanthi cara sing padha. Contone, iki carane sampeyan bisa nambah terjemahan Spanyol (kode basa Spanyol yaiku es):
Mangkene lang(es)tumindak ing input file khusus kanggo terjemahan Spanyol:
Sampeyan kudu nyetel basa dokumen sampeyan (utawa subtree) kanthi bener supaya teks sing bener ditampilake. Iki bisa ditindakake kanthi nggunakake atribut langing unsur <html>utawa Content-Languageheader HTTP , ing antarane cara liyane.