Формаларды башкаруу стилдери, жайгашуу параметрлери жана ар кандай формаларды түзүү үчүн ыңгайлаштырылган компоненттер үчүн мисалдар жана колдонуу көрсөтмөлөрү.
Обзор
Bootstrap'тин форманы башкаруу элементтери класстар менен кайра жүктөлгөн форма стилдерибизде кеңейет. Браузерлерде жана түзмөктөрдө ырааттуураак көрсөтүү үчүн алардын жекелештирилген дисплейлерине кошулуу үчүн бул класстарды колдонуңуз.
Электрондук почтаны текшерүү, номерди тандоо жана башкалар сыяктуу киргизүүнү башкаруунун жаңы мүмкүнчүлүктөрүнөн пайдалануу үчүн typeбардык киргизүүдө (мисалы, emailэлектрондук почта дареги же сандык маалымат үчүн) тиешелүү атрибутту колдонууну унутпаңыз .number
Бул жерде Bootstrap формасынын стилдерин көрсөтүү үчүн тез мисал. Керектүү класстар, форманын макети жана башкалар боюнча документтерди окууну улантыңыз.
Форма башкаруулары
Тексттик форманын башкаруу элементтери — <input>s, <select>s жана <textarea>s сыяктуу — класс менен стилделет .form-control. Жалпы көрүнүш, фокустун абалы, өлчөмдөрү жана башкалар үчүн стилдер камтылган.
Файл киргизүү үчүн, .form-controlүчүн алмаштырыңыз .form-control-file.
Өлчөмү
.form-control-lgжана сыяктуу класстарды колдонуу менен бийиктиктерди коюңуз .form-control-sm.
окуу үчүн гана
readonlyКиргизүүнүн маанисин өзгөртүүгө жол бербөө үчүн киргизүүгө логикалык атрибутун кошуңуз . Окуу үчүн гана киргизүүлөр жеңилирээк көрүнөт (өчүрүлгөн киргизүүлөр сыяктуу), бирок стандарттык курсорду сактап калат.
Жөнөкөй текстти окуу
Эгерде сиз <input readonly>формаңызда элементтердин жөнөкөй текст катары стилде болушун кааласаңыз, .form-control-plaintextклассты форма талаасынын демейки стилин алып салуу жана туура четтөө менен толтурууну сактоо үчүн колдонуңуз.
Диапазон киргизүүлөр
аркылуу горизонталдуу жылдырылуучу диапазон киргизүүлөрдү коюңуз .form-control-range.
Белгилөө кутучалары жана радиолор
Демейки белгилөө кутучалары жана радиолор HTML элементтеринин жайгашуусун жана жүрүм-турумун жакшыртуучу эки киргизүү түрлөрү үчүн бир класстын.form-check жардамы менен жакшыртылды . Белгилөө кутучалары тизмедеги бир же бир нече варианттарды тандоо үчүн, ал эми радиолор көптөрдүн арасынан бир параметрди тандоо үчүн.
Өчүрүлгөн белги кутучалары жана радиолор колдоого алынат, бирок ата- not-allowedэненин курсорунда курсор менен камсыз кылуу <label>үчүн disabledатрибутту .form-check-input. Өчүрүлгөн атрибут киргизүүнүн абалын көрсөтүүгө жардам берүү үчүн ачык түстү колдонот.
Белгилөө кутучалары жана радиолор HTML негизиндеги форманы текшерүүнү колдоо жана кыска, жеткиликтүү энбелгилерди камсыз кылуу үчүн курулган. Ошентип, биздин <input>s жана s - ичиндеги <label>элементтерден айырмаланып, бир тууган элементтер . Бул бир аз кененирээк, анткени сиз жана .<input><label>idfor<input><label>
Демейки (жыйылган)
Демейки боюнча, дароо бир тууган болгон каалаган сандагы белги кутучалары жана радиолор вертикалдуу тизилип, менен тиешелүү аралыкта жайгаштырылат .form-check.
Inline
Белгилөө кутучаларын же радиолорду бир горизонталдуу сапта .form-check-inlineкаалаганга кошуу менен топтоңуз .form-check.
Белгисиз
Эч кандай энбелги тексти жок .position-staticкиргизүүлөргө кошуңуз . .form-checkКөмөкчү технологиялар үчүн белгинин кандайдыр бир түрүн дагы эле камсыз кылууну унутпаңыз (мисалы, aria-label.
Макет
Bootstrap дээрлик бардык форманы башкаруу элементтерине тиешелүү болгондуктан display: block, width: 100%формалар демейки боюнча вертикалдуу стек болот. Кошумча класстар бул макетти формага жараша өзгөртүү үчүн колдонулушу мүмкүн.
Топторду түзүү
Класс .form-groupформаларга кандайдыр бир структура кошуунун эң оңой жолу. Бул энбелгилерди, башкаруу элементтерин, кошумча жардам текстин жана форманы текшерүү билдирүүлөрүн туура топтоого үндөгөн ийкемдүү классты камсыз кылат. Демейки боюнча, ал гана колдонулат margin-bottom, бирок керек болсо, кошумча стилдерди тандап алат .form-inline. <fieldset>Аны s, <div>s же дээрлик башка элементтер менен колдонуңуз .
Форма торчосу
Биздин тор класстарыбызды колдонуу менен татаал формаларды түзсө болот. Аларды бир нече мамычаларды, ар кандай тууралыктарды жана кошумча тегиздөө параметрлерин талап кылган форма макеттери үчүн колдонуңуз.
Форма сабы
Катуураак жана компакттуураак макеттер үчүн демейки мамычанын каналдарын жокко чыгарган стандарттуу тор сапыбыздын вариациясына да алмаштыра .rowаласыз ..form-row
Тор системасы менен дагы татаал схемаларды түзсө болот.
Горизонталдык форма
.rowТопторду түзүү үчүн класс кошуу жана .col-*-*энбелгилериңиздин жана башкаруу элементтериңиздин туурасын көрсөтүү үчүн класстарды колдонуу менен торчо менен горизонталдуу формаларды түзүңүз . .col-form-labelӨзүңүздүн s'иңизге да кошууну унутпаңыз, <label>алар вертикалдуу түрдө борборлоштурулган форманы башкаруу элементтери менен байланышкан.
Кээде сизге керектүү кемчиликсиз тегиздөө үчүн маржа же толтуруучу утилиталарды колдонуу керек болушу мүмкүн. Мисалы, padding-topтексттин базалык сызыгын жакшыраак тегиздөө үчүн биз топтолгон радио киргизүүлөрдөгү энбелгисин алып салдык.
Горизонталдуу формадагы энбелгилердин өлчөмү
жана өлчөмүн туура аткаруу үчүн .col-form-label-smже колдонуңуз ..col-form-label-lg<label><legend>.form-control-lg.form-control-sm
Колонна өлчөмү
Мурунку мисалдарда көрсөтүлгөндөй, биздин тор системасы a же .colичинде каалаган сандагы s санын жайгаштырууга мүмкүндүк берет . Алар жеткиликтүү туурасын алардын ортосунда бирдей бөлүштүрүшөт. Ошондой эле, сиз аздыр-көптүр мейкиндикти ээлөө үчүн тилкелериңиздин бир бөлүгүн тандап алсаңыз болот, ал эми калгандары калганын бирдей бөлөт, мисалы, белгилүү тилке класстары менен ..row.form-row.col.col-7
Автоматтык өлчөм
Төмөнкү мисалда мазмунду вертикалдуу борборлоштуруу үчүн flexbox утилитасы колдонулат жана тилкелериңиз .colкерек .col-autoболгончо мейкиндикти гана ээлей тургандай өзгөрөт. Башкача айтканда, мамычанын өлчөмү мазмунуна жараша болот.
Андан кийин сиз аны дагы бир жолу өлчөмгө жараша тилке класстары менен ремикс кыла аласыз.
.form-inlineБир горизонталдуу сапта бир катар энбелгилерди, форманы башкаруу элементтерин жана баскычтарды көрсөтүү үчүн классты колдонуңуз . Саптык формалардагы форма башкаруулары демейки абалынан бир аз айырмаланат.
Башкаруу элементтери болуп , каалаган HTML ак мейкиндигин кыйратып, мейкиндик жана flexbox утилиталары display: flexменен тегиздөө башкарууну камсыз кылууга мүмкүндүк берет .
Башкаруу элементтери жана киргизүү топтору width: autoBootstrap демейкисин жокко чыгаруу үчүн алышат width: 100%.
Башкаруу элементтери мобилдик түзмөктөрдөгү тар көрүнүштөрдү эсепке алуу үчүн кеңдиги кеминде 576 пиксель болгон көрүү портторунда гана пайда болот .
Сиз жеке форманын башкаруу элементтеринин туурасын жана тегиздөөсүн аралыктык утилиталар менен кол менен чечүү керек болушу мүмкүн (төмөндө көрсөтүлгөндөй). Акырында, <label>ар бир форманын башкаруусу менен аны экрандан окубаган коноктордон жашырышыңыз керек болсо да, камтууну унутпаңыз .sr-only.
Ыңгайлаштырылган форманы башкаруу жана тандоо да колдоого алынат.
Жашыруун энбелгилердин альтернативалары
Эгер ар бир киргизүү үчүн энбелги кошпосоңуз, экранды окугучтар сыяктуу жардамчы технологиялар формаларыңызда көйгөй жаратат. Бул саптык формалар үчүн .sr-onlyкласстын жардамы менен энбелгилерди жашыра аласыз. aria-label, aria-labelledbyже titleатрибут сыяктуу жардамчы технологиялар үчүн энбелги берүүнүн дагы альтернативалуу ыкмалары бар. Эгерде булардын бири да жок болсо, жардамчы технологиялар placeholderатрибутту колдонууга кайрылышы мүмкүн, эгерде бар болсо, бирок placeholderбашка этикеткалоо ыкмаларын алмаштыруу катары колдонуу сунушталбайт.
Жардам тексти
.form-textФормалардагы блок-деңгээлдеги жардам тексти (мурда .help-blockv3 катары белгилүү) аркылуу түзүлүшү мүмкүн . Inline жардам текстин ийкемдүү түрдө каалаган HTML элементин жана сыяктуу пайдалуу класстарды колдонуу менен ишке ашырууга болот .text-muted.
Жардам текстин форманы башкаруу элементтери менен байланыштыруу
Жардам тексти форманы башкаруу менен ачык байланыштырылышы керек, ал aria-describedbyатрибутту колдонууга тиешелүү. Бул жардамчы технологиялар, мисалы, экранды окугучтар, колдонуучу фокустаганда же башкарууга киргенде, бул жардам текстин жарыялоосун камсыздайт.
Төмөндөгү жардам текстин киргизүү мен��н стилдештирсе болот .form-text. Бул класс display: blockжогорудагы киргизүүлөрдөн оңой аралыкты алуу үчүн кээ бир жогорку чекти камтыйт жана кошот.
Сырсөзүңүздүн узундугу 8-20 белгиден туруп, тамгалардан жана сандардан туруп, боштуктарды, атайын белгилерди же эмодзилерди камтыбашы керек.
Сатылган текст ар кандай типтүү HTML элементин (бул <small>, <span>, же башка нерсе болсун) пайдалуу класстан башка эч нерсе менен колдоно алат.
Өчүрүлгөн формалар
disabledКолдонуучунун өз ара аракеттенүүсүн алдын алуу жана аны жеңилирээк көрсөтүү үчүн киргизүүгө логикалык атрибутун кошуңуз .
Ичиндеги бардык башкаруу элементтерин өчүрүү үчүн disabledатрибутун кошуңуз .<fieldset>
Анкерлер менен эскертүү
Демейки боюнча, браузерлер а ичиндеги бардык түпкү форманы башкаруу элементтерин ( <input>, <select>жана <button>элементтерди) <fieldset disabled>өчүрүлгөн катары карап, аларда клавиатура менен чычкандын өз ара аракеттенүүсүн алдын алат. Бирок, эгерде сиздин формаңызда <a ... class="btn btn-*">элементтер бар болсо, аларга стили гана берилет pointer-events: none. Баскычтардын өчүрүлгөн абалы жөнүндө бөлүмдө (айрыкча, анкер элементтери үчүн бөлүмдө) белгиленгендей, бул CSS касиети стандартташтырылган эмес жана Internet Explorer 10до толук колдоого алынбайт жана клавиатура колдонуучуларынын бул шилтемелерди фокустоого же активдештирүүгө жөндөмдүү. Коопсуз болуу үчүн, мындай шилтемелерди өчүрүү үчүн ыңгайлаштырылган JavaScript колдонуңуз.
Браузердик шайкештик
Bootstrap бул стилдерди бардык браузерлерде колдонсо да, Internet Explorer 11 жана андан төмөн disabledверсиялар <fieldset>. Бул браузерлерде талаалар топтомун өчүрүү үчүн ыңгайлаштырылган JavaScript колдонуңуз.
Валидация
Колдоого алынган бардык браузерлерибизде жеткиликтүү болгон HTML5 форманын текшерүүсү менен колдонуучуларыңызга баалуу, иш-аракет кылууга жарамдуу пикирлерди бериңиз . Серепчинин демейки текшерүү пикиринен тандаңыз же биздин орнотулган класстарыбыз жана башталгыч JavaScript менен ыңгайлаштырылган билдирүүлөрдү ишке ашырыңыз.
Учурда биз ыңгайлаштырылган текшерүү стилдерин колдонууну сунуштайбыз, анткени түпнуска серепчинин демейки текшерүү билдирүүлөрү бардык браузерлерде (эң негизгиси, иш тактадагы жана мобилдик түзмөктөгү Chrome) жардамчы технологияларга такай туш боло бербейт.
Бул кантип иштейт
Форманы текшерүү Bootstrap менен кантип иштейт:
HTML формасынын валидациясы CSSтин эки псевдоклассы :invalidжана :valid. Ал <input>, <select>, жана <textarea>элементтерине тиешелүү.
Bootstrap :invalidжана :validстилдерин ата-эне .was-validatedклассына карайт, адатта <form>. Болбосо, мааниси жок бардык талап кылынган талаа баракты жүктөөдө жараксыз катары көрсөтүлөт. Ошентип, сиз аларды качан жандырууну тандай аласыз (адатта форма тапшыруу аракетинен кийин).
Форманын көрүнүшүн баштапкы абалга келтирүү үчүн (мисалы, AJAX аркылуу динамикалык форма тапшыруу учурунда), тапшыргандан кийин .was-validatedклассты <form>кайра алып салыңыз.
Кайталоо катары .is-invalidжана .is-validкласстар сервер тарабын текшерүү үчүн псевдокласстардын ордуна колдонулушу мүмкүн . .was-validatedАлар ата- энелер классын талап кылбайт .
CSSтин иштөөсүндөгү чектөөлөрдөн улам, биз (учурда) <label>ыңгайлаштырылган JavaScript'тин жардамысыз DOMдагы форма башкаруусунан мурун келген стилдерди колдоно албайбыз.
Бардык заманбап браузерлер форманы башкаруу элементтерин текшерүү үчүн JavaScript ыкмаларынын сериясы болгон чектөө текшерүү APIин колдойт.
Пикир билдирүүлөр браузердин демейки параметрлерин (ар бир серепчи үчүн ар кандай жана CSS аркылуу туруксуз) же кошумча HTML жана CSS менен биздин ыңгайлаштырылган пикир стилдерибизди колдонушу мүмкүн.
setCustomValidityСиз JavaScript менен ыңгайлаштырылган жарактуу билдирүүлөрдү бере аласыз .
Муну эске алып, биздин ыңгайлаштырылган форманы текшерүү стилдерибиз, кошумча сервердик класстар жана браузердин демейки параметрлери үчүн төмөнкү демонстрацияларды карап көрүңүз.
Ыңгайлаштырылган стилдер
Ыңгайлаштырылган Bootstrap формасын текшерүү билдирүүлөрү novalidateүчүн, <form>. Бул серепчинин демейки пикир кеңештерин өчүрөт, бирок дагы эле JavaScript'те форманы текшерүү API'лерине мүмкүнчүлүк берет. Төмөнкү форманы тапшырууга аракет кылыңыз; биздин JavaScript тапшыруу баскычын кармап, сизге пикир жөнөтөт. Тапшыруу аракетинде формаңызды башкаруу элементтерине колдонулган стилдерди :invalidкөрөсүз .:valid
Ыңгайлаштырылган пикирлердин стилдери пикирлерди жакшыраак билдирүү үчүн ыңгайлаштырылган түстөрдү, чектерди, фокус стилдерин жана фон сүрөтчөлөрүн колдонот. s үчүн фон сүрөтчөлөрү <select>менен гана жеткиликтүү .custom-selectжана жок .form-control.
Серепчинин демейки параметрлери
Ыңгайлаштырылган текшерүү боюнча пикир билдирүүлөргө же форманын жүрүм-турумун өзгөртүү үчүн JavaScript жазууга кызыкпайсызбы? Баары жакшы, сиз браузердин демейки параметрлерин колдоно аласыз. Төмөнкү форманы тапшырып көрүңүз. Браузериңизге жана ОСңузга жараша, сиз пикирдин бир аз башкача стилин көрөсүз.
Бул пикир стилдерин CSS менен стилдештирүүгө болбойт, бирок сиз дагы эле JavaScript аркылуу пикир текстин ыңгайлаштыра аласыз.
Сервер тарап
Биз кардар тарабынан текшерүүнү колдонууну сунуштайбыз, бирок сервердик текшерүүнү талап кылсаңыз, жараксыз жана жарактуу форма талааларын жана менен көрсөтө .is-invalidаласыз .is-valid. .invalid-feedbackБул класстар менен да колдоого алынаарын эске алыңыз .
Колдоого алынган элементтер
Биздин үлгү формаларыбызда жогоруда түпнуска тексттик s көрсөтүлөт, бирок форманы текшерүү стилдери s жана ыңгайлаштырылган форманы башкаруу элементтери <input>үчүн да жеткиликтүү .<textarea>
Кеңештер
Эгер формаңыз уруксат берсе, .{valid|invalid}-feedbackкласстарды класстарга алмаштырсаңыз болот, анда .{valid|invalid}-tooltipвалидация пикирлерин стилдүү инструментарийде көрсөтүү үчүн. position: relativeКуралдын позициясын аныктоо үчүн анын жанында ата-эне болушун унутпаңыз . Төмөндөгү мисалда, биздин тилке класстарыбызда буга чейин эле бар, бирок сиздин долбооруңуз альтернативалуу орнотууну талап кылышы мүмкүн.
Ыңгайлаштырылган формалар
Дагы көбүрөөк ыңгайлаштыруу жана кайчылаш серепчи ырааттуулугу үчүн, браузердин демейки жөндөөлөрүн алмаштыруу үчүн биздин толугу менен ыңгайлаштырылган форма элементтерин колдонуңуз. Алар семантикалык жана жеткиликтүү белгилөөнүн үстүнө курулган, ошондуктан алар каалаган демейки форманы башкаруу үчүн бекем алмаштыруучу болуп саналат.
Белгилөө кутучалары жана радиолор
Ар бир белги кутучасы жана радио <input>жана <label>жупташтыруу <div>биздин ыңгайлаштырылган башкарууну түзүү үчүн оролгон. Структуралык жактан алганда, бул биздин демейки ыкма менен бирдей .form-check.
Ыңгайлаштырылган форма көрсөткүчүбүздү туура стилдөө үчүн биз бардык штаттарыбыз ~үчүн бир тууган селекторду ( ) колдонобуз . Класс менен айкалышканда , биз ар бир пункттун абалына жараша тексттин стилин түзө алабыз .<input>:checked.custom-control-label<input>
<input>Биз менен демейкиди жашырабыз жана анын ордуна жана менен жаңы ыңгайлаштырылган форма көрсөткүчүн куруу үчүн opacityколдонобуз . Тилекке каршы, биз жөн гана ыңгайлаштырылганын кура албайбыз, анткени CSS бул элементте иштебейт..custom-control-label::before::after<input>content
Текшерилген штаттарда биз Open Iconicтен base64 кыстарылган SVG сүрөтчөлөрүн колдонобуз . Бул бизге браузерлерде жана түзмөктөрдө стилдөө жана жайгаштыруу үчүн эң мыкты башкарууну камсыз кылат.
Белгилөө кутучалары
Ыңгайлаштырылган белги кутучалары JavaScript аркылуу кол менен орнотулганда псевдо классты да колдоно алышат :indeterminate(аны көрсөтүү үчүн HTML атрибуту жок).
Эгер сиз jQuery колдонуп жатсаңыз, бул сыяктуу бир нерсе жетиштүү болушу керек:
Радиолор
Inline
Өчүрүлгөн
Ыңгайлаштырылган белги кутучалары жана радиолор да өчүрүлүшү мүмкүн. disabledЛогикалык атрибутун кошуу <input>жана ыңгайлаштырылган индикатор жана энбелги сүрөттөө автоматтык түрдө стилделет.
Которгучтар
Которуштурууда ыңгайлаштырылган белги кутучасынын белгиси бар, бирок .custom-switchкоторгучту көрсөтүү үчүн классты колдонот. Которгучтар да disabledатрибутун колдойт.
Менюну тандаңыз
Ыңгайлаштырылган менюларга ыңгайлаштырылган стилдерди иштетүү үчүн <select>ыңгайлаштырылган класс гана керек . .custom-selectЫңгайлаштырылган стилдер анын баштапкы көрүнүшү менен чектелген жана браузердин чектөөлөрүнөн улам s <select>өзгөртө албайт .<option>
Сиз ошондой эле биздин окшош өлчөмдөгү текст киргизүүлөрүбүзгө дал келүүчү чакан жана чоң ыңгайлаштырылган тандоолордун ичинен тандай аласыз.
multipleатрибут да колдоого алынат :
Атрибуту катары size:
Диапазон
менен ыңгайлаштырылган <input type="range">башкаруу элементтерин түзүңүз .custom-range. Трек (фон) жана баш бармак (маани) экөө тең браузерлерде бирдей көрүнүш үчүн стилделет. IE жана Firefox гана прогрессти визуалдык түрдө көрсөтүү үчүн баш бармактын сол же оң жагынан өз тректерин "толтурууну" колдогондуктан, биз учурда аны колдобойбуз.
minДиапазон киргизүүлөрү тиешелүүлүгүнө жараша жана max- 0жана үчүн ачык маанилерге ээ 100. minСиз жана maxатрибуттарын колдонгондор үчүн жаңы маанилерди көрсөтсөңүз болот .
Демейки боюнча, диапазон бүтүн сандын маанилерине "чап" киргизет. Муну өзгөртүү үчүн, сиз stepмаанини көрсөтсөңүз болот. Төмөндөгү мисалда биз кадамдарды колдонуу менен эки эсеге көбөйтөбүз step="0.5".
Файл браузери
Ыңгайлаштырылган файл киргизүүнү жандандыруу үчүн сунушталган плагин: bs-custom-file-input , бул биз учурда бул жерде биздин документтерде колдонуп жаткан нерсе.
Файлдын киргизүүсү топтун эң татаалы жана кошумча JavaScriptти талап кылат, эгерде сиз аларды функционалдык Файлды тандоо… жана тандалган файл аталышынын тексти менен байланыштыргыңыз келсе.
<input>Биз аркылуу демейки файлды жашырабыз opacityжана анын ордуна <label>. баскычы менен түзүлөт жана жайгаштырылат ::after. Акыр-аягы, биз курчап турган мазмун үчүн туура аралыкты жарыялоо үчүн widthжана heighton .<input>
SCSS менен саптарды которуу же өзгөчөлөштүрүү
:lang()Псевдокласс " Броу" текстин башка тилдерге которууга мүмкүнчүлүк берүү үчүн колдонулат. Тиешелүү тил теги жана локализацияланган саптар $custom-file-textменен Sass өзгөрмөсүнө жазууларды жокко чыгарыңыз же кошуңуз . Англис саптары да ушундай эле ыңгайлаштырылышы мүмкүн. Мисалы, испанча котормосун кантип кошууга болот (испан тилинин коду ):es
Бул жерде lang(es)испан котормосу үчүн ыңгайлаштырылган файл киргизүү боюнча иш-аракет:
Туура текст көрсөтүлүшү үчүн документиңиздин тилин (же анын ички дарагын) туура коюшуңуз керек. Бул элементтеги атрибутту же башка ыкмалардын арасында HTTP башын колдонуу мененlang жасалышы мүмкүн .<html>Content-Language
HTML менен саптарды которуу же ыңгайлаштыруу
data-browseBootstrap ошондой эле ыңгайлаштырылган киргизүү энбелгисине кошула турган атрибут менен HTMLдеги "Каралоо" текстин которуунун жолун камсыз кылат (голландчадагы мисал):