Прыклады і рэкамендацыі па выкарыстанні стыляў кіравання формамі, параметраў макета і карыстацкіх кампанентаў для стварэння шырокага спектру формаў.
Агляд
Элементы кіравання формамі Bootstrap пашыраюць нашы стылі формы Rebooted з класамі. Выкарыстоўвайце гэтыя класы, каб выбраць іх індывідуальныя дысплеі для больш паслядоўнага адлюстравання ў браўзерах і прыладах.
Абавязкова выкарыстоўвайце адпаведны 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.
Сцяжкі і радыё
Сцяжкі па змаўчанні і радыё палепшаны з дапамогай аднаго класа для абодвух тыпаў уводу .form-check, які паляпшае размяшчэнне і паводзіны іх элементаў HTML . Сцяжкі прызначаны для выбару аднаго або некалькіх варыянтаў у спісе, у той час як радыё - для выбару аднаго варыянту з многіх.
Падтрымліваюцца адключаныя сцяжкі і радыё. Атрыбут disabledбудзе прымяняць больш светлы колер, каб паказаць стан уводу.
Сцяжкі і радыёкнопкі падтрымліваюць праверку формы на аснове HTML і забяспечваюць сціслыя, даступныя меткі. Такім чынам, нашы <input>s і <label>s з'яўляюцца роднаснымі элементамі ў адрозненне ад элементаў <input>унутры a <label>. Гэта крыху больш падрабязна, бо вы павінны ўказаць атрыбуты idі for, каб звязаць <input>і <label>.
Па змаўчанні (у стос)
Па змаўчанні любая колькасць сцяжкоў і радыёпрымачоў, якія з'яўляюцца непасрэднымі братамі, будуць размешчаны вертыкальна ў стос і адпаведным чынам размешчаны з .form-check.
У радку
Згрупуйце сцяжкі або радыё ў адным гарызантальным радку, дадаўшы .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у свае <label>s, каб яны былі вертыкальна адцэнтраваны з адпаведнымі элементамі кіравання формай.
Часа�� вам, магчыма, спатрэбіцца выкарыстоўваць утыліты поля або запаўнення, каб стварыць неабходнае ідэальнае выраўноўванне. Напрыклад, мы выдалілі padding-topярлык з нашых радыёўводаў, каб лепш выраўнаваць базавую лінію тэксту.
Памер этыкеткі гарызантальнай формы
Абавязкова выкарыстоўвайце .col-form-label-smабо .col-form-label-lgдля вашага <label>s або <legend>s, каб правільна прытрымлівацца памеру .form-control-lgі .form-control-sm.
Прамер калоны
Як было паказана ў папярэдніх прыкладах, наша сістэма сеткі дазваляе размясціць любую колькасць .cols у межах .rowабо .form-row. Яны пароўну падзеляць даступную шырыню паміж сабой. Вы таксама можаце выбраць падмноства вашых слупкоў, каб яны займалі больш ці менш месца, а астатнія .colпароўну падзяляюць астатнія, з дапамогай пэўных класаў слупкоў, такіх як .col-7.
Аўтаматычны памер
У прыкладзе ніжэй выкарыстоўваецца ўтыліта flexbox для вертыкальнага цэнтравання змесціва і змяненняў .col, .col-autoкаб вашыя слупкі займалі столькі месца, колькі неабходна. Іншымі словамі, памер слупка залежыць ад змесціва.
Затым вы можаце змяшаць гэта яшчэ раз з класамі слупкоў, якія залежаць ад памеру.
Выкарыстоўвайце .form-inlineклас для адлюстравання серыі этыкетак, элементаў кіравання формай і кнопак у адным гарызантальным радку. Элементы кіравання формамі ва ўбудаваных формах нязначна адрозніваюцца ад стану па змаўчанні.
Элементы кіравання згортваюць display: flexлюбы прабел у HTML і дазваляюць забяспечваць кантроль выраўноўвання з дапамогай утыліт інтэрвалу і flexbox .
Элементы кіравання і групы ўводу атрымліваюць width: auto, каб перавызначыць Bootstrap па змаўчанні width: 100%.
Элементы кіравання з'яўляюцца ўбудаванымі толькі ў вокнах прагляду шырынёй не менш за 576 пікселяў для ўліку вузкіх вокнаў прагляду на мабільных прыладах.
Магчыма, вам спатрэбіцца ўручную вырашыць шырыню і выраўноўванне асобных элементаў кіравання формай з дапамогай утыліт інтэрвалу (як паказана ніжэй). Нарэшце, не забудзьцеся заўсёды ўключаць у <label>кожны кантроль формы, нават калі вам трэба схаваць яго ад наведвальнікаў, якія не карыстаюцца праграмамі чытання з экрана, з дапамогай .sr-only.
Карыстальніцкія элементы кіравання і выбар таксама падтрымліваюцца.
Альтэрнатывы схаваным этыкеткам
Дапаможныя тэхналогіі, такія як праграмы чытання з экрана, будуць мець праблемы з вашымі формамі, калі вы не ўключыце метку для кожнага ўводу. Для гэтых убудаваных формаў вы можаце схаваць меткі з дапамогай .sr-onlyкласа. Існуюць іншыя альтэрнатыўныя метады прадастаўлення меткі для дапаможных тэхналогій, такія як атрыбут aria-label, aria-labelledbyабо . titleКалі ніводнага з іх няма, дапаможныя тэхналогіі могуць выкарыстоўваць placeholderатрыбут, калі ён ёсць, але звярніце ўвагу, што выкарыстанне placeholderў якасці замены іншым метадам маркіроўкі не рэкамендуецца.
Тэкст даведкі
Тэкст даведкі на ўзроўні блока ў формах можа быць створаны з дапамогай .form-text(раней вядомага як .help-blockу v3). Убудаваны тэкст даведкі можа быць гнутка рэалізаваны з дапамогай любога ўбудаванага элемента HTML і класаў утыліт, такіх як .text-muted.
Звязванне тэксту даведкі з элементамі кіравання формай
Тэкст даведкі павінен быць відавочна звязаны з элементам кіравання формай, да якога ён адносіцца, выкарыстоўваючы aria-describedbyатрыбут. Гэта гарантуе, што дапаможныя тэхналогіі, такія як праграмы чытання з экрана, будуць агучваць гэты тэкст даведкі, калі карыстальнік засяроджваецца або ўводзіць элемент кіравання.
Тэкст даведкі пад уводамі можна стылізаваць з дапамогай .form-text. Гэты клас уключае display: blockі дадае некаторы верхняе поле для лёгкага аддзялення ад уводаў вышэй.
Ваш пароль павінен складацца з 8-20 сімвалаў, змяшчаць літары і лічбы і не павінен утрымліваць прабелы, спецыяльныя сімвалы або эмодзі.
Убудаваны тэкст можа выкарыстоўваць любы тыповы ўбудаваны HTML-элемент (няхай гэта будзе <small>, <span>, або нешта іншае) з не больш чым карысным класам.
Формы для інвалідаў
Дадайце disabledлагічны атрыбут да ўводу, каб прадухіліць узаемадзеянне карыстальніка і зрабіць яго больш лёгкім.
Дадайце disabledатрыбут у a <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>які знаходзіцца перад элементам кіравання формай у DOM, без дапамогі карыстальніцкага JavaScript.
Усе сучасныя браўзеры падтрымліваюць API праверкі абмежаванняў , серыю метадаў JavaScript для праверкі элементаў кіравання формамі.
У паведамленнях зваротнай сувязі могуць выкарыстоўвацца налады браўзера па змаўчанні (розныя для кожнага браўзера і недаступныя для стылізацыі з дапамогай CSS) або нашы ўласныя стылі зваротнай сувязі з дадатковымі HTML і CSS.
Вы можаце прадастаўляць спецыяльныя паведамленні аб сапраўднасці setCustomValidityў JavaScript.
Маючы гэта на ўвазе, разгледзьце наступныя дэманстрацыі нашых карыстальніцкіх стыляў праверкі формы, дадатковых класаў на баку сервера і налад браўзера па змаўчанні.
Індывідуальныя стылі
Для карыстальніцкіх паведамленняў праверкі формы Bootstrap вам трэба будзе дадаць novalidateлагічны атрыбут у файл <form>. Гэта адключае падказкі браўзера па змаўчанні для зваротнай сувязі, але па-ранейшаму забяспечвае доступ да API праверкі формы ў JavaScript. Паспрабуйце адправіць форму ніжэй; наш JavaScript перахопіць кнопку адпраўкі і перадасць вам зваротную сувязь. Пры спробе адпраўкі вы ўбачыце стылі :invalidі :valid, прымененыя да элементаў кіравання формай.
Карыстальніцкія стылі зваротнай сувязі прымяняюць карыстальніцкія колеры, рамкі, стылі фокусу і фонавыя значкі для лепшай перадачы зваротнай сувязі. Фонавыя значкі для <select>s даступныя толькі з .custom-select, а не .form-control.
Стандартныя налады браўзера
Не зацікаўлены ў карыстальніцкіх зваротных паведамленнях праверкі або напісанні JavaScript для змены паводзін формы? Усё добра, вы можаце выкарыстоўваць налады браўзера па змаўчанні. Паспрабуйце адправіць форму ніжэй. У залежнасці ад вашага браўзера і АС вы ўбачыце крыху іншы стыль зваротнай сувязі.
Хоць гэтыя стылі зваротнай сувязі нельга стылізаваць з дапамогай CSS, вы ўсё роўна можаце наладзіць тэкст зваротнай сувязі праз JavaScript.
Бок сервера
Мы рэкамендуем выкарыстоўваць праверку на баку кліента, але калі вам патрэбна праверка на баку сервера, вы можаце пазначыць несапраўдныя і сапраўдныя палі формы з дапамогай .is-invalidі .is-valid. Звярніце ўвагу, .invalid-feedbackшто таксама падтрымліваецца гэтымі класамі.
Падтрымліваюцца элементы
Стылі праверкі даступныя для наступных элементаў кіравання і кампанентаў формы:
<input>s і <textarea>s з .form-control(у тым ліку да аднаго .form-controlў групах уводу)
<select>з .form-controlабо.custom-select
.form-checkс
.custom-checkboxs і .custom-radios
.custom-file
Падказкі
Калі ваш макет формы гэта дазваляе, вы можаце памяняць .{valid|invalid}-feedbackкласы на .{valid|invalid}-tooltipкласы, каб адлюстраваць зваротную сувязь праверкі ў стылізаванай падказцы. Упэўніцеся, што бацька position: relativeзнаходзіцца на ім для размяшчэння падказкі. У прыведзеным ніжэй прыкладзе нашы класы слупкоў ужо маюць гэта, але для вашага праекта можа спатрэбіцца альтэрнатыўная ўстаноўка.
Наладжванне
Станы праверкі можна наладзіць праз Sass з $form-validation-statesкартай. _variables.scssГэтая карта Sass, размешчаная ў нашым файле, зацыкліваецца для стварэння станаў па змаўчанні valid/ invalidправеркі. Уключана ўкладзеная карта для налады колеру і значка кожнага штата. Хаця ніякія іншыя станы не падтрымліваюцца браўзерамі, тыя, хто выкарыстоўвае карыстальніцкія стылі, могуць лёгка дадаць больш складаную форму зваротнай сувязі.
Звярніце ўвагу, што мы не рэкамендуем наладжваць гэтыя значэнні, не мадыфікуючы таксама form-validation-stateміксін.
Карыстальніцкія формы
Для яшчэ большай налады і ўзгодненасці ў розных браўзерах выкарыстоўвайце нашы цалкам індывідуальныя элементы формы, каб замяніць налады браўзера па змаўчанні. Яны створаны на аснове семантычнай і даступнай разметкі, таму з'яўляюцца надзейнай заменай любога стандартнага элемента кіравання формай.
Сцяжкі і радыё
Кожны сцяжок, радыё <input>і <label>спарванне загорнуты ў , <div>каб стварыць наш уласны элемент кіравання. Структурна гэта той жа падыход, што і наш стандартны .form-check.
Мы выкарыстоўваем селектар брата і сястры ( ~) для ўсіх нашых <input>станаў, напрыклад, :checkedкаб правільна стылізаваць наш індыкатар карыстацкай формы. У спалучэнні з .custom-control-labelкласам мы таксама можам стылізаваць тэкст для кожнага элемента ў залежнасці ад <input>стану '.
Мы хаваем значэнне па змаўчанні <input>з дапамогай opacityі выкарыстоўваем .custom-control-labelдля стварэння новага індывідуальнага індыкатара формы на яго месцы з дапамогай ::beforeі ::after. На жаль, мы не можам стварыць карыстацкі элемент толькі з гэтага элемента, <input>таму што CSS contentне працуе з гэтым элементам.
У адзначаных станах мы выкарыстоўваем абразкі SVG, убудаваныя ў базу 64, з Open Iconic . Гэта дае нам найлепшы кантроль над стылізацыяй і размяшчэннем у браўзерах і прыладах.
Сцяжкі
Карыстальніцкія сцяжкі могуць таксама выкарыстоўваць :indeterminateпсеўдаклас, калі ўручную ўсталёўваць праз JavaScript (няма даступнага атрыбута HTML для яго ўказання).
Калі вы выкарыстоўваеце jQuery, чагосьці накшталт гэтага павінна быць дастаткова:
Радыёстанцыі
У радку
Інваліды
Карыстальніцкія сцяжкі і радыё таксама можна адключыць. Дадайце disabledлагічны атрыбут да <input>і карыстальніцкі індыкатар і апісанне меткі будуць аўтаматычна стылізаваны.
Выключальнікі
Пераключальнік мае разметку карыстацкага сцяжка, але выкарыстоўвае .custom-switchклас для візуалізацыі тумблера. Пераключальнікі таксама падтрымліваюць disabledатрыбут.
Выберыце меню
Карыстальніцкім <select>меню патрэбны толькі карыстальніцкі клас, .custom-selectкаб выклікаць карыстальніцкія стылі. Карыстальніцкія стылі абмежаваныя <select>першапачатковым выглядам і не могуць змяняць <option>s з-за абмежаванняў браўзера.
Вы таксама можаце выбраць адзін з маленькіх і вялікіх выбараў, якія адпавядаюць нашаму ўводу тэксту падобнага памеру.
Атрыбут 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і heightна <input>для належнага інтэрвалу для навакольнага змесціва.
Пераклад або налада радкоў з дапамогай SCSS
Псеўдаклас выкарыстоўваецца :lang()для перакладу тэксту «Агляд» на іншыя мовы. Перавызначце або дадайце запісы ў $custom-file-textзменную Sass адпаведным моўным тэгам і лакалізаванымі радкамі. Ангельскія радкі можна наладзіць такім жа чынам. Напрыклад, вось як можна дадаць іспанскі пераклад (код іспанскай мовы: es):
Вось lang(es)у дзеянні карыстальніцкі ўвод файла для перакладу на іспанскую мову:
Вам трэба будзе правільна задаць мову вашага дакумента (або яго паддрэва), каб паказваць правільны тэкст. Гэта можа быць зроблена з дапамогай атрыбуту элемента langабо<html> загалоўка Content-LanguageHTTP , сярод іншых метадаў.
Пераклад або налада радкоў з дапамогай HTML
Bootstrap таксама забяспечвае спосаб перакладу тэксту «Browse» у HTML з data-browseатрыбутам, які можа быць дададзены ў карыстальніцкую метку ўводу (прыклад на галандскай мове):