Shakllarni boshqarish uslublari, tartib variantlari va turli xil shakllarni yaratish uchun moslashtirilgan komponentlar uchun misollar va foydalanish ko'rsatmalari.
Umumiy koʻrinish
Bootstrap forma boshqaruvlari sinflar bilan qayta yuklangan shakl uslublarimizda kengaytiriladi. Brauzerlar va qurilmalarda yanada izchil renderlash uchun moslashtirilgan displeylarga kirish uchun ushbu sinflardan foydalaning.
E-pochtani tekshirish, raqam tanlash va boshqalar kabi yangi kiritish elementlaridan foydalanish uchun typebarcha kiritishlarda (masalan, emailelektron pochta manzili yoki raqamli maʼlumot uchun) tegishli atributdan foydalanganingizga ishonch hosil qiling .number
Bootstrap forma uslublarini namoyish qilish uchun qisqa misol. Kerakli sinflar, shakl tartibi va boshqalar bo'yicha hujjatlarni o'qishni davom eting.
Shakl boshqaruvlari
<input>s, <select>s va s kabi matnli shakl boshqaruvlari sinf <textarea>bilan uslublanadi . .form-controlUmumiy koʻrinish, fokus holati, oʻlcham va boshqalar uchun uslublar kiritilgan.
Fayl kiritish .form-controluchun ni almashtiring .form-control-file.
Hajmi
.form-control-lgva kabi sinflar yordamida balandliklarni o'rnating .form-control-sm.
Faqat o'qish
readonlyKirish qiymatini o'zgartirishning oldini olish uchun kirishga mantiqiy atributni qo'shing . Faqat o'qish uchun kirishlar engilroq ko'rinadi (xuddi o'chirilgan kirishlar kabi), lekin standart kursorni saqlab qoladi.
Faqat o'qish uchun oddiy matn
Agar siz <input readonly>formangizda oddiy matn sifatida yaratilgan elementlarga ega bo'lishni istasangiz .form-control-plaintext, standart shakl maydoni uslubini olib tashlash va to'g'ri chekka va to'ldirishni saqlash uchun sinfdan foydalaning.
Kirish diapazoni
dan foydalanib gorizontal aylantiriladigan diapazonli kirishlarni o'rnating .form-control-range.
Belgilash qutilari va radiolar
Standart belgilash katakchalari va radiolar HTML elementlarining tartibini va xatti-harakatlarini yaxshilaydigan ikkala kirish turi .form-checkuchun bitta sinf yordamida yaxshilanadi . Belgilash katakchalari ro'yxatdagi bir yoki bir nechta variantni tanlash uchun, radiolar esa ko'p variantlardan bittasini tanlash uchun.
O'chirilgan belgilash katakchalari va radiostantsiyalar qo'llab-quvvatlanadi, lekin not-allowedota-onaning kursoriga kursorni ko'rsatish uchun atributga atribut <label>qo'shishingiz kerak bo'ladi . O'chirilgan atribut kirish holatini ko'rsatish uchun ochroq rangni qo'llaydi.disabled.form-check-input
Belgilash katakchalari va radiodan foydalanish HTML-ga asoslangan shaklni tekshirishni qo'llab-quvvatlash va qisqacha, kirish mumkin bo'lgan teglarni taqdim etish uchun yaratilgan. Shunday qilib, bizning <input>s va slar a ichidagidan <label>farqli ravishda birodar elementlardir . Bu biroz batafsilroq, chunki va bilan bog'lanish uchun atributlar va xususiyatlarni belgilashingiz kerak .<input><label>idfor<input><label>
Birlamchi (stacked)
Odatiy bo'lib, bevosita birodar bo'lgan har qanday miqdordagi belgilash katakchalari va radiostantsiyalar vertikal ravishda joylashtiriladi va bilan mos ravishda joylashtiriladi .form-check.
Mos ravishda
Belgilash katakchalari yoki radiolarni bir xil gorizontal qatorga qo'shish orqali .form-check-inlineguruhlang .form-check.
Yorliqlarsiz
Yorliq matni bo'lmagan .position-statickirishlarga qo'shing . .form-checkYordamchi texnologiyalar uchun yorliqning qandaydir shaklini taqdim etishni unutmang (masalan, dan foydalanish aria-label).
Tartib
Bootstrap deyarli barcha shakl boshqaruvlari uchun qo'llanilganligi sababli display: block, width: 100%shakllar sukut bo'yicha vertikal ravishda to'planadi. Ushbu tartibni har bir shakl asosida o'zgartirish uchun qo'shimcha sinflardan foydalanish mumkin.
Guruhlarni shakllantirish
Sinf .form-group- bu shakllarga ba'zi tuzilmalarni qo'shishning eng oson usuli. Bu teglar, boshqaruv elementlari, ixtiyoriy yordam matni va shaklni tekshirish xabarlarini to'g'ri guruhlashni rag'batlantiradigan moslashuvchan sinfni taqdim etadi. Odatiy bo'lib, u faqat amal qiladi margin-bottom, lekin kerak bo'lganda qo'shimcha uslublarni tanlaydi .form-inline. Uni <fieldset>s, <div>s yoki deyarli har qanday boshqa element bilan ishlating.
Shakllar panjarasi
Bizning grid sinflarimiz yordamida yanada murakkab shakllarni qurish mumkin. Bulardan bir nechta ustunlar, turli xil kenglik va qo'shimcha tekislash opsiyalarini talab qiladigan shakl tartiblari uchun foydalaning.
Shakl qatori
.rowQattiqroq va ixchamroq sxemalar uchun .form-rowstandart ustunli oluklarni bekor qiluvchi standart panjara qatorimiz bilan ham almashtirishingiz mumkin .
Grid tizimi yordamida yanada murakkab sxemalar ham yaratilishi mumkin.
Gorizontal shakl
.rowGuruhlarni shakllantirish uchun sinf qo'shish va .col-*-*teglar va boshqaruv elementlarining kengligini belgilash uchun sinflardan foydalanish orqali panjara bilan gorizontal shakllar yarating . s-ga ham qo'shishni unutmang, .col-form-labelshunda <label>ular o'zlarining bog'langan shakl boshqaruvlari bilan vertikal markazlashtiriladi.
Ba'zida sizga kerakli moslikni yaratish uchun chekka yoki to'ldirish yordam dasturlaridan foydalanishingiz kerak bo'ladi. Misol uchun, padding-topmatnning asosiy chizig'ini yaxshiroq tekislash uchun biz o'rnatilgan radio kirishlar yorlig'ini olib tashladik.
Gorizontal shakl yorlig'i o'lchami
va oʻlchamiga toʻgʻri amal qilish uchun s yoki .col-form-label-smto dan foydalaning ..col-form-label-lg<label><legend>.form-control-lg.form-control-sm
Ustun o'lchamlari
.colOldingi misollarda ko'rsatilganidek, bizning to'r tizimimiz a .rowyoki ichida istalgan sonni joylashtirish imkonini beradi .form-row. Ular mavjud kenglikni o'zaro teng taqsimlaydilar. Ko'proq yoki kamroq joy egallash uchun siz ustunlaringizning bir qismini tanlashingiz mumkin, .colqolganlari esa qolganlarini, masalan, maxsus ustun sinflari bilan teng taqsimlaydi .col-7.
Avtomatik o'lcham
Quyidagi misolda tarkibni vertikal markazlashtirish uchun flexbox yordam dasturidan foydalaniladi va ustunlaringiz faqat kerak bo'lganda ko'proq joy egallashi uchun .colo'zgartiriladi . .col-autoBoshqacha qilib aytadigan bo'lsak, ustunning o'lchamlari tarkibga qarab belgilanadi.
Keyin uni o'lchamga xos ustun sinflari bilan yana bir bor remiks qilishingiz mumkin.
.form-inlineBir qator yorliqlar, shakl boshqaruvlari va tugmalarni bitta gorizontal qatorda ko'rsatish uchun sinfdan foydalaning . Inline shakllardagi shakl boshqaruvlari standart holatidan biroz farq qiladi.
Boshqaruv elementlari har qanday HTML bo'sh joyini yopadi va sizga oraliq va flexboxdisplay: flex yordam dasturlari yordamida tekislashni boshqarishni ta'minlash imkonini beradi .
width: autoBootstrap standartini bekor qilish uchun boshqaruv elementlari va kiritish guruhlari qabul qilinadi width: 100%.
Boshqaruv elementlari faqat mobil qurilmalardagi tor ko‘rish oynalarini hisobga olish uchun kengligi kamida 576px bo‘lgan ko‘rish oynalarida inline ko‘rinadi .
Shaklning individual boshqaruv elementlarining kengligi va hizalanishini oraliq yordamchi dasturlar bilan qo'lda hal qilishingiz kerak bo'lishi mumkin (quyida ko'rsatilganidek). Nihoyat, <label>har bir shakl boshqaruviga, hatto ekranni o'qimaydigan tashrif buyuruvchilardan yashirish kerak bo'lsa ham, har doim qo'shishni unutmang .sr-only.
Maxsus shakl boshqaruvlari va tanlovlari ham qo'llab-quvvatlanadi.
Yashirin teglarga alternativalar
Har bir kiritish uchun yorliq qo'shmasangiz, ekranni o'qiydiganlar kabi yordamchi texnologiyalar shakllaringiz bilan bog'liq muammolarga duch keladi. Ushbu inline shakllar uchun siz .sr-onlysinfdan foydalanib teglarni yashirishingiz mumkin. Yordamchi texnologiyalar uchun yorliqni taqdim etishning boshqa muqobil usullari mavjud, masalan, aria-label, aria-labelledbyyoki titleatribut. Agar ulardan hech biri mavjud bo'lmasa, yordamchi texnologiyalar placeholder, agar mavjud bo'lsa, atributdan foydalanishga murojaat qilishi mumkin, ammo placeholderyorliqlashning boshqa usullarini almashtirish sifatida foydalanish tavsiya etilmaydi.
Yordam matni
Shakllardagi blok darajasidagi yordam matni yordamida yaratilishi mumkin .form-text(ilgari .help-blockv3 da bo'lgani kabi). Inline yordam matni har qanday inline HTML elementi va kabi yordamchi dastur sinflari yordamida moslashuvchan tarzda amalga oshirilishi mumkin .text-muted.
Yordam matnini forma boshqaruvlari bilan bog‘lash
Yordam matni aria-describedbyatributdan foydalanish bilan bog'liq bo'lgan shakl boshqaruvi bilan aniq bog'langan bo'lishi kerak. Bu foydalanuvchi diqqatini qaratganda yoki boshqaruvga kirganida yordamchi texnologiyalar (masalan, ekranni o'qiydiganlar) ushbu yordam matnini e'lon qilishini ta'minlaydi.
Yordam matni ostidagi kirishlar bilan uslublash mumkin .form-text. Ushbu sinf display: blockyuqoridagi kirishlar orasidagi masofani oson ajratish uchun yuqori chegarani o'z ichiga oladi va qo'shadi.
Parolingiz uzunligi 8-20 belgidan iborat boʻlishi, harflar va raqamlardan iborat boʻlishi hamda boʻshliqlar, maxsus belgilar yoki kulgichlardan iborat boʻlmasligi kerak.
Inline matn har qanday oddiy inline HTML elementidan (u <small>, <span>, yoki boshqa narsa bo'lsin) faqat yordamchi dastur sinfidan foydalanishi mumkin.
O'chirilgan shakllar
disabledFoydalanuvchi oʻzaro taʼsirini oldini olish va uni engilroq koʻrsatish uchun kirishga mantiqiy atributni qoʻshing .
Barcha boshqaruv elementlarini o'chirish uchun atributni disableda ga qo'shing .<fieldset>
Ankrajlar bilan ogohlantirish
Odatiy bo'lib, brauzerlar a ichidagi barcha mahalliy shakl boshqaruvlarini ( <input>, <select>va <button>elementlarni) <fieldset disabled>o'chirib qo'yib, ulardagi klaviatura va sichqonchaning o'zaro ta'sirini oldini oladi. Biroq, agar sizning shaklingiz <a ... class="btn btn-*">elementlarni o'z ichiga olsa, ularga faqat uslub beriladi pointer-events: none. Tugmalarning o'chirilgan holati (va ayniqsa, langar elementlari uchun kichik bo'limda) bo'limida ta'kidlanganidek , bu CSS xususiyati hali standartlashtirilmagan va Internet Explorer 10 da to'liq qo'llab-quvvatlanmaydi va klaviatura foydalanuvchilariga to'sqinlik qilmaydi. diqqatni jamlash yoki ushbu havolalarni faollashtirish mumkin. Xavfsiz bo'lish uchun bunday havolalarni o'chirish uchun maxsus JavaScript-dan foydalaning.
Brauzerlar o'rtasidagi muvofiqlik
disabledBootstrap bu uslublarni barcha brauzerlarda qo‘llasa-da, Internet Explorer 11 va undan past versiyalari <fieldset>. Ushbu brauzerlarda maydonlar to'plamini o'chirish uchun maxsus JavaScript-dan foydalaning.
Tasdiqlash
Barcha qo‘llab-quvvatlanadigan brauzerlarimizda mavjud bo‘lgan HTML5 shakl tekshiruvi yordamida foydalanuvchilarga qimmatli, amaliy fikr-mulohazalarni taqdim eting . Brauzerning standart tekshiruvi bo‘yicha fikr-mulohazalarni tanlang yoki o‘rnatilgan sinflarimiz va boshlang‘ich JavaScript-ni ishlatib, maxsus xabarlarni amalga oshiring.
Hozirda biz moslashtirilgan tekshirish uslublaridan foydalanishni tavsiya qilamiz, chunki mahalliy brauzerning standart tekshiruvi xabarlari barcha brauzerlarda (asosan, ish stoli va mobil qurilmalarda Chrome) doimiy ravishda yordamchi texnologiyalardan foydalanmaydi.
U qanday ishlaydi
Formani tekshirish Bootstrap bilan qanday ishlaydi:
HTML shaklini tekshirish CSS ning ikkita psevdo-sinfi orqali qo'llaniladi :invalidva :valid. U <input>, <select>, va <textarea>elementlari uchun amal qiladi.
Bootstrap :invalidva :validuslublarini ota- .was-validatedklassga qamrab oladi, odatda <form>. Aks holda, qiymatsiz istalgan kerakli maydon sahifa yuklanishida yaroqsiz deb ko'rsatiladi. Shunday qilib, siz ularni qachon faollashtirishni tanlashingiz mumkin (odatda ariza yuborishga urinishdan keyin).
Shaklning ko'rinishini tiklash uchun (masalan, AJAX yordamida dinamik shakllar yuborilganda), topshirilgandan so'ng .was-validatedsinfni <form>qaytadan olib tashlang.
Qayta tiklash sifatida .is-invalidva server tomonini tekshirish.is-valid uchun psevdo-sinflar o'rniga sinflar ishlatilishi mumkin . Ular ota-ona sinfini talab qilmaydi ..was-validated
CSS qanday ishlashidagi cheklovlar tufayli biz (hozirda) DOMda <label>forma boshqaruvidan oldin kelgan uslublarni maxsus JavaScript yordamisiz qo'llay olmaymiz.
Barcha zamonaviy brauzerlar cheklovni tekshirish API ni, shakl boshqaruvlarini tekshirish uchun JavaScript usullari qatorini qo'llab-quvvatlaydi.
Fikr-mulohaza xabarlari brauzerning standart sozlamalaridan (har bir brauzer uchun har xil va CSS orqali beqaror) yoki qo‘shimcha HTML va CSS bilan maxsus fikr-mulohaza uslublarimizdan foydalanishi mumkin.
setCustomValiditySiz JavaScript-da maxsus haqiqiylik xabarlarini taqdim etishingiz mumkin .
Shuni yodda tutgan holda, bizning shaxsiy shaklni tekshirish uslublarimiz, ixtiyoriy server tomoni sinflari va brauzerning standart sozlamalari uchun quyidagi demolarni ko'rib chiqing.
Maxsus uslublar
Maxsus Bootstrap formasini tekshirish xabarlari uchun novalidateboolean atributini <form>. Bu brauzerning birlamchi fikr-mulohazalarini bildirish bo‘yicha maslahatlarini o‘chirib qo‘yadi, lekin shunga qaramay JavaScript-da shaklni tekshirish API-lariga kirish imkonini beradi. Quyidagi shaklni topshirishga harakat qiling; bizning JavaScript jo'natish tugmachasini to'xtatadi va sizga fikr-mulohazalarni yuboradi.
Yuborishga urinayotganda siz shakl boshqaruv elementlariga qo‘llanilgan :invalidva uslublarni ko‘rasiz .:valid
Brauzerning standart sozlamalari
Shakl xatti-harakatlarini o'zgartirish uchun maxsus tekshirish bo'yicha fikr-mulohaza xabarlari yoki JavaScript yozish qiziq emasmi? Hammasi yaxshi, siz brauzerning standart sozlamalaridan foydalanishingiz mumkin. Quyidagi shaklni topshirishga harakat qiling. Brauzeringiz va operatsion tizimingizga qarab, siz bir oz boshqacha fikr-mulohazalarni ko'rasiz.
Ushbu fikr-mulohaza uslublarini CSS bilan shakllantirish mumkin bo'lmasa-da, siz hali ham JavaScript orqali fikr-mulohaza matnini sozlashingiz mumkin.
Server tomoni
Mijoz tomoni tekshiruvidan foydalanishni tavsiya qilamiz, lekin agar sizga server tomoni kerak bo'lsa, yaroqsiz va to'g'ri shakl maydonlarini va bilan ko'rsatishingiz .is-invalidmumkin .is-valid. E'tibor bering, .invalid-feedbackushbu sinflar ham qo'llab-quvvatlanadi.
Qo'llab-quvvatlanadigan elementlar
Bizning namunaviy shakllarimiz yuqoridagi matn matnlarini ko'rsatadi <input>, ammo shaklni tekshirish uslublari bizning shaxsiy shakl boshqaruvlarimiz uchun ham mavjud.
Maslahat
Agar formangizning joylashuvi bunga imkon bersa , uslublar bo'yicha maslahatchida tekshirish bo'yicha fikr-mulohazalarni ko'rsatish .{valid|invalid}-feedbackuchun sinflarni sinflarga almashtirishingiz mumkin . Uskunani joylashtirish uchun uning yonida .{valid|invalid}-tooltipota-onangiz borligiga ishonch hosil qiling . position: relativeQuyidagi misolda, bizning ustun sinflarimizda bu allaqachon mavjud, ammo loyihangiz muqobil sozlashni talab qilishi mumkin.
Maxsus shakllar
Ko'proq moslashtirish va o'zaro brauzer izchilligi uchun brauzerning standart sozlamalarini almashtirish uchun bizning to'liq moslashtirilgan shakl elementlaridan foydalaning. Ular semantik va foydalanish mumkin bo'lgan belgilar ustiga qurilgan, shuning uchun ular har qanday standart shakl boshqaruvi uchun mustahkam o'rinbosar hisoblanadi.
Belgilash qutilari va radiolar
Har bir belgilash katakchasi va radio bizning shaxsiy boshqaruvimizni yaratish <div>uchun akasi bilan o'ralgan va unga qo'shilgan matn uchun a. Strukturaviy jihatdan, bu bizning standartimiz bilan bir xil yondashuv .<span><label>.form-check
Biz barcha shtatlarimiz uchun aka-uka selektoridan ( ~) foydalanamiz, masalan , shaxsiy shakl ko'rsatkichimizni to'g'ri uslublash uchun. Sinf bilan birlashganda , biz har bir element uchun matnni holatiga qarab uslublashimiz mumkin.<input>:checked.custom-control-label<input>
Biz standartni yashiramiz va uning oʻrniga va <input>bilan yangi maxsus shakl koʻrsatkichini yaratish uchun opacityfoydalanamiz . Afsuski, biz faqat undan moslashtirilganini yarata olmaymiz, chunki CSS bu elementda ishlamaydi..custom-control-label::before::after<input>content
Belgilangan holatlarda biz Open Iconic -dan base64 o'rnatilgan SVG piktogrammalaridan foydalanamiz . Bu bizga brauzerlar va qurilmalarda uslublar va joylashishni aniqlash uchun eng yaxshi boshqaruvni ta'minlaydi.
Belgilash katakchalari
Maxsus belgilash katakchalari :indeterminateJavaScript orqali qo'lda o'rnatilganda psevdo sinfdan ham foydalanishi mumkin (uni belgilash uchun mavjud HTML atributi mavjud emas).
Agar siz jQuery dan foydalanayotgan bo'lsangiz, shunga o'xshash narsa kifoya qiladi:
Radiolar
Mos ravishda
O'chirilgan
Maxsus belgilash katakchalari va radiolar ham o'chirib qo'yilishi mumkin. disabledga mantiqiy atributni qo'shing <input>va maxsus indikator va yorliq tavsifi avtomatik tarzda stilize qilinadi.
Menyuni tanlang
Maxsus menyularga maxsus uslublarni ishga tushirish uchun <select>faqat maxsus sinf kerak bo'ladi . .custom-selectMaxsus uslublar ning dastlabki koʻrinishi bilan chegaralanadi va brauzer cheklovlari tufayli s ni <select>oʻzgartira olmaydi .<option>
Xuddi shunday o'lchamdagi matn kiritishlarimizga mos keladigan kichik va katta moslashtirilgan tanlovlardan ham tanlashingiz mumkin.
Atribut multipleham qo'llab-quvvatlanadi:
Atribut kabi size:
Diapazon
<input type="range">bilan maxsus boshqaruv elementlarini yarating .custom-range. Trek (fon) va bosh barmog'i (qiymat) ikkalasi ham brauzerlarda bir xil ko'rinishi uchun yaratilgan. Faqat IE va Firefox o'z treklarini bosh barmog'ining chap yoki o'ng qismidan "to'ldirishni" qo'llab-quvvatlaydi, chunki taraqqiyotni vizual ravishda ko'rsatish vositasi sifatida biz buni hozircha qo'llab-quvvatlamaymiz.
minDiapazondagi kirishlar mos ravishda va max- 0va uchun yashirin qiymatlarga ega 100. minSiz va maxatributlaridan foydalanadiganlar uchun yangi qiymatlarni belgilashingiz mumkin .
Odatiy bo'lib, diapazon butun son qiymatlariga "snap" kiritadi. Buni o'zgartirish uchun siz stepqiymatni belgilashingiz mumkin. Quyidagi misolda biz yordamida qadamlar sonini ikki baravar oshiramiz step="0.5".
Fayl brauzeri
Fayl kiritish - bu guruhning eng jirkanch usuli va agar siz ularni " Faylni tanlash " funksiyasi va tanlangan fayl nomi matni bilan bog'lashni istasangiz, qo'shimcha JavaScript-ni talab qiladi .
Biz standart faylni <input>orqali yashiramiz opacityva o'rniga <label>. Tugma hosil bo'ladi va bilan joylashtiriladi ::after. Nihoyat, biz atrofdagi kontent uchun to'g'ri bo'sh joy uchun a widthva heightustiga e'lon qilamiz.<input>
Satrlarni tarjima qilish yoki sozlash
Pseudo :lang()-sinf "Browse" matnini boshqa tillarga tarjima qilish uchun ishlatiladi. Tegishli til yorlig'i va mahalliylashtirilgan satrlar $custom-file-textbilan Sass o'zgaruvchisiga yozuvlarni bekor qiling yoki qo'shing . Ingliz tilidagi satrlar xuddi shu tarzda sozlanishi mumkin. Misol uchun, ispancha tarjimani qanday qo'shish mumkin (ispan tili kodi ):es
Ispan lang(es)tiliga tarjima qilish uchun maxsus fayl kiritish bo‘yicha amalda:
To'g'ri matn ko'rsatilishi uchun hujjatingiz tilini (yoki uning pastki daraxtini) to'g'ri belgilashingiz kerak bo'ladi. Bu elementdagi atribut yoki HTTP sarlavhasi yordamida ,lang boshqa usullar qatorida amalga oshirilishi mumkin .<html>Content-Language