Примери и упутства за употребу стилова контроле образаца, опција изгледа и прилагођених компоненти за креирање широког спектра образаца.
Преглед
Боотстрап-ове контроле обрасца проширују наше поново покренуте стилове обрасца са класама. Користите ове класе да бисте омогућили њихове прилагођене приказе за конзистентније приказивање у прегледачима и уређајима.
Обавезно користите одговарајући typeатрибут на свим улазима (нпр. emailза адресу е-поште или numberза нумеричке информације) да бисте искористили предности новијих контрола уноса као што су верификација е-поште, избор броја и још много тога.
Ево кратког примера за демонстрацију стилова обрасца Боотстрапа. Наставите да читате документацију о потребним часовима, изгледу обрасца и још много тога.
Контроле обрасца
Контроле текстуалног облика — попут <input>с, <select>с и <textarea>с — стилизоване су са .form-controlкласом. Укључени су стилови за општи изглед, стање фокуса, величине и још много тога.
Обавезно истражите наше прилагођене форме да бисте додатно стилизовали <select>.
За уносе датотека, замените .form-controlза .form-control-file.
Одређивање величине
Подесите висине користећи класе као што су .form-control-lgи .form-control-sm.
Само за читање
Додајте readonlyлогички атрибут на улаз да бисте спречили модификацију вредности улаза. Уноси само за читање изгледају лакши (баш као и онемогућени улази), али задржавају стандардни курсор.
Обичан текст само за читање
Ако желите да <input readonly>елементи у обрасцу буду стилизовани као обичан текст, користите .form-control-plaintextкласу да бисте уклонили подразумевани стил поља обрасца и сачували исправну маргину и допуну.
Подразумевана поља за потврду и радио уређаји су побољшани уз помоћ једне класе за оба типа уноса која побољшава изглед и понашање њихових ХТМЛ.form-check елемената . Поља за потврду служе за бирање једне или више опција на листи, док су радио уређаји за избор једне од многих опција.
Подржани су онемогућени оквири за потврду и радио. Атрибут disabledће применити светлију боју како би помогао да се означи стање уноса.
Поља за потврду и радио дугмад подржавају валидацију обрасца засновану на ХТМЛ-у и пружају сажете, приступачне ознаке. Као такви, наши <input>с и <label>с су сродни елементи за разлику од <input>унутар а <label>. Ово је мало опширније јер морате навести idи forатрибуте да бисте повезали <input>и <label>.
Подразумевано (наслагано)
Подразумевано, било који број поља за потврду и радија који су непосредни брат или сестра биће вертикално наслагани и на одговарајући начин распоређени са .form-check.
У реду
Групирајте поља за потврду или радио станице у истом хоризонталном реду додавањем .form-check-inlineу било који .form-check.
Без етикета
Додај .position-staticу уносе .form-checkкоји немају текст ознаке. Не заборавите да и даље обезбедите неки облик ознаке за помоћне технологије (на пример, коришћење aria-label).
Лаиоут
Пошто се Боотстрап примењује display: blockи width: 100%на скоро све наше контроле обрасца, обрасци ће се подразумевано слагати вертикално. Додатне класе се могу користити за варирање овог распореда на основу облика.
Формирајте групе
Класа .form-groupје најлакши начин да се обрасцима дода нека структура. Пружа флексибилну класу која подстиче правилно груписање ознака, контрола, опционог текста помоћи и порука о валидацији образаца. Подразумевано се примењује само margin-bottom, али .form-inlineпо потреби преузима додатне стилове. Користите га са <fieldset>с, <div>с или скоро било којим другим елементом.
Мрежа образаца
Сложеније форме се могу изградити помоћу наших мрежних класа. Користите их за изгледе образаца који захтевају више колона, различите ширине и додатне опције поравнања.
Ред форме
Такође можете заменити .rowза .form-row, варијацију нашег стандардног реда мреже која замењује подразумеване олуке колона за чвршће и компактније распореде.
Сложенији распореди се такође могу креирати помоћу система мреже.
Хоризонтална форма
Креирајте хоризонталне форме помоћу мреже додавањем .rowкласе у групе образаца и коришћењем .col-*-*класа да одредите ширину ваших ознака и контрола. Обавезно додајте .col-form-labelи своје <label>с тако да буду вертикално центрирани са припадајућим контролама обрасца.
Понекад ћете можда морати да користите помоћне програме за маргине или паддинг да бисте направили савршено поравнање које вам је потребно. На пример, уклонили смо padding-topознаку на нашим наслаганим радио улазима да бисмо боље поравнали основну линију текста.
Димензионисање етикете хоризонталне форме
Обавезно користите .col-form-label-smили .col-form-label-lgна своје <label>с или <legend>с да бисте правилно пратили величину .form-control-lgи .form-control-sm.
Димензионисање колоне
Као што је приказано у претходним примерима, наш систем мреже вам омогућава да поставите било који број .colс унутар .rowили .form-row. Они ће подједнако поделити доступну ширину између себе. Такође можете одабрати подскуп својих колона који ће заузимати више или мање простора, док преостали .colс подједнако деле остатак, са специфичним класама колона као што је .col-7.
Ауто-димензионирање
Пример у наставку користи услужни програм флекбок да вертикално центрира садржај и мења .colсе .col-autoтако да ваше колоне заузимају само онолико простора колико је потребно. Другим речима, колона се сама одређује на основу садржаја.
Затим можете то још једном ремиксовати са класама колона специфичних за величину.
Користите .form-inlineкласу да прикажете низ ознака, контрола обрасца и дугмади у једном хоризонталном реду. Контроле обрасца унутар уметнутих образаца незнатно се разликују од подразумеваних стања.
Контроле су display: flex, сажимају било који ХТМЛ бели простор и омогућавају вам да обезбедите контролу поравнања помоћу услужних програма за размак и флексбокс .
Контроле и улазне групе добијају width: autoда замене Боотстрап подразумевану вредност width: 100%.
Контроле се појављују само у оквирима за приказ који су широки најмање 576 пиксела да би се узели у обзир уски оквири за приказ на мобилним уређајима.
Можда ћете морати ручно да решите ширину и поравнање појединачних контрола обрасца помоћу услужних програма за размак (као што је приказано испод). На крају, обавезно увек укључите а <label>уз сваку контролу обрасца, чак и ако треба да га сакријете од посетилаца који не читају екран помоћу .sr-only.
Подржане су и прилагођене контроле обрасца и избори.
Алтернативе скривеним ознакама
Помоћне технологије као што су читачи екрана ће имати проблема са вашим обрасцима ако не укључите ознаку за сваки унос. За ове уметнуте обрасце, можете сакрити ознаке помоћу .sr-onlyкласе. Постоје додатне алтернативне методе обезбеђивања ознаке за помоћне технологије, као што је aria-labelатрибут или aria-labelledby. titleАко ништа од овога није присутно, помоћне технологије могу да прибегну коришћењу placeholderатрибута, ако постоји, али имајте на уму да се не препоручује употреба placeholderкао замена за друге методе обележавања.
Текст помоћи
Текст помоћи на нивоу блока у обрасцима се може креирати помоћу .form-text(раније познатог као .help-blockу в3). Уграђени текст помоћи може се флексибилно имплементирати коришћењем било ког уграђеног ХТМЛ елемента и услужних класа као што је .text-muted.
Повезивање текста помоћи са контролама обрасца
Текст помоћи треба да буде експлицитно повезан са контролом обрасца на коју се односи коришћењем aria-describedbyатрибута. Ово ће осигурати да ће помоћне технологије — као што су читачи екрана — објавити овај текст помоћи када се корисник фокусира или уђе у контролу.
Текст помоћи испод уноса може бити стилизован са .form-text. Ова класа укључује display: blockи додаје горњу маргину ради лакшег размака од улаза изнад.
Ваша лозинка мора да има 8-20 знакова, да садржи слова и бројеве и не сме да садржи размаке, специјалне знакове или емоџије.
Уметнути текст може да користи било који типичан инлине ХТМЛ елемент (било да се ради о <small>, <span>, или нешто треће) са ништа више од услужне класе.
Онемогућене форме
Додајте disabledлогички атрибут на улаз да бисте спречили интеракције корисника и учинили да изгледа лакше.
Додајте disabledатрибут а <fieldset>да бисте онемогућили све контроле унутар.
Упозорење са сидрима
Подразумевано, прегледачи ће третирати све изворне контроле обрасца ( <input>и елементе) унутар а као онемогућене, спречавајући интеракције <select>и тастатуре и миша на њима. Међутим, ако ваш образац такође укључује елементе, њима ће бити дат само стил . Као што је наведено у одељку о онемогућеном стању дугмади (а посебно у пододељку за елементе сидра), ово ЦСС својство још увек није стандардизовано и није у потпуности подржано у Интернет Екплорер-у 10 и неће спречити кориснике тастатуре да буду могу да фокусирају или активирају ове везе. Да бисте били сигурни, користите прилагођени ЈаваСцрипт да бисте онемогућили такве везе.<button><fieldset disabled><a ... class="btn btn-*">pointer-events: none
Компатибилност са више претраживача
Док ће Боотстрап применити ове стилове у свим прегледачима, Интернет Екплорер 11 и старији не подржавају у потпуности disabledатрибут на <fieldset>. Користите прилагођени ЈаваСцрипт да бисте онемогућили скуп поља у овим прегледачима.
Валидација
Обезбедите вредне, корисне повратне информације својим корисницима помоћу валидације ХТМЛ5 обрасца – доступног у свим нашим подржаним прегледачима . Изаберите неку од подразумеваних повратних информација о валидацији прегледача или примените прилагођене поруке помоћу наших уграђених класа и почетничког ЈаваСцрипт-а.
Тренутно препоручујемо коришћење прилагођених стилова провере поштовања подразумеваних порука о валидацији изворног претраживача нису доследно изложене помоћним технологијама у свим прегледачима (пре свега Цхроме на рачунару и мобилном уређају).
Како то ради
Ево како функционише валидација обрасца са Боотстрапом:
Валидација ХТМЛ форме се примењује преко ЦСС две псеудо-класе :invalidи :valid. Односи се на <input>, <select>и <textarea>елементе.
Боотстрап обухвата :invalidи :validстилове на родитељску .was-validatedкласу, обично се примењује на <form>. У супротном, свако обавезно поље без вредности приказује се као неважеће при учитавању странице. На овај начин можете изабрати када да их активирате (обично након покушаја подношења обрасца).
Да бисте ресетовали изглед обрасца (на пример, у случају динамичког подношења обрасца помоћу АЈАКС-а), уклоните .was-validatedкласу из <form>поново након слања.
Као резервни, .is-invalidкласе .is-validсе могу користити уместо псеудо-класа за валидацију на страни сервера . Не захтевају .was-validatedродитељску класу.
Због ограничења у начину на који ЦСС функционише, не можемо (тренутно) да применимо стилове на а <label>који се налази испред контроле обрасца у ДОМ-у без помоћи прилагођеног ЈаваСцрипт-а.
Сви савремени претраживачи подржавају АПИ за валидацију ограничења , серију ЈаваСцрипт метода за проверу контроле обрасца.
Поруке са повратним информацијама могу да користе подразумеване поставке претраживача (различите за сваки прегледач и нестилизиране преко ЦСС-а) или наше прилагођене стилове повратних информација са додатним ХТМЛ-ом и ЦСС-ом.
Можете да обезбедите прилагођене поруке о валидности са setCustomValidityу ЈаваСцрипт-у.
Имајући то на уму, размотрите следеће демонстрације за наше прилагођене стилове валидације обрасца, опционе класе на страни сервера и подразумеване вредности претраживача.
Прилагођени стилови
За поруке о валидацији прилагођеног Боотстрап обрасца, мораћете да додате novalidateлогички атрибут у свој <form>. Ово онемогућава подразумеване савете прегледача за повратне информације, али и даље пружа приступ АПИ-јима за валидацију обрасца у ЈаваСцрипт-у. Покушајте да пошаљете образац испод; наш ЈаваСцрипт ће пресрести дугме за слање и пренети вам повратне информације. Када покушате да пошаљете, видећете стилове :invalidи :validпримењене на ваше контроле обрасца.
Прилагођени стилови повратних информација примењују прилагођене боје, ивице, стилове фокуса и позадинске иконе да боље комуницирају повратне информације. Позадинске иконе за <select>с су доступне само са .custom-select, али не и са .form-control.
Подразумеване поставке претраживача
Не занимају вас прилагођене повратне информације о валидацији или писање ЈаваСцрипт-а да бисте променили понашање обрасца? Све у реду, можете користити подразумеване поставке претраживача. Покушајте да пошаљете образац испод. У зависности од вашег претраживача и ОС-а, видећете мало другачији стил повратних информација.
Иако се ови стилови повратних информација не могу стилизовати помоћу ЦСС-а, и даље можете да прилагодите текст повратних информација путем ЈаваСцрипт-а.
Сервер сиде
Препоручујемо да користите проверу ваљаности на страни клијента, али у случају да вам је потребна валидација на страни сервера, можете навести неважећа и важећа поља обрасца са .is-invalidи .is-valid. Имајте на уму да .invalid-feedbackје такође подржано са овим класама.
Подржани елементи
Стилови валидације су доступни за следеће контроле и компоненте обрасца:
<input>с и <textarea>с са .form-control(укључујући највише један .form-controlу улазним групама)
<select>с са .form-controlили.custom-select
.form-checkс
.custom-checkboxс и .custom-radioс
.custom-file
Описи алатки
Ако ваш изглед обрасца то дозвољава, можете заменити .{valid|invalid}-feedbackкласе за .{valid|invalid}-tooltipкласе да бисте приказали повратне информације о валидацији у стилизованом опису алата. Обавезно имате родитеља са position: relativeњим за позиционирање у опису алатке. У примеру испод, наше класе колона то већ имају, али ваш пројекат може захтевати алтернативно подешавање.
Прилагођавање
Стања валидације могу се прилагодити преко Сасс-а са $form-validation-statesмапом. Смештена у нашој _variables.scssдатотеци, ова Сасс мапа је запетљана да би се генерисала подразумевана valid/ invalidвалидација стања. Укључена је угнежђена мапа за прилагођавање боје и иконе сваке државе. Иако прегледачи не подржавају ниједно друго стање, они који користе прилагођене стилове могу лако да додају сложеније повратне информације обрасца.
Имајте на уму да не препоручујемо прилагођавање ових вредности без модификације form-validation-stateмикса.
Прилагођени обрасци
За још више прилагођавања и конзистентност више прегледача, користите наше потпуно прилагођене елементе обрасца да замените подразумеване вредности прегледача. Изграђени су на врху семантичке и приступачне ознаке, тако да су солидна замена за сваку подразумевану контролу обрасца.
Поља за потврду и радио
Свако поље за потврду и радио <input>и <label>упаривање су умотани у а <div>да би се створила наша прилагођена контрола. Структурно, ово је исти приступ као и наш подразумевани .form-check.
Користимо селектор брата и сестра ( ~) за сва наша <input>стања — на пример — да бисмо :checkedправилно стилизовали наш прилагођени индикатор обрасца. Када се комбинује са .custom-control-labelкласом, можемо такође да стилизујемо текст за сваку ставку на основу стања <input>'.
Сакривамо подразумевану вредност <input>помоћу opacityи користимо .custom-control-labelза изградњу новог прилагођеног индикатора обрасца уместо њега помоћу ::beforeи ::after. Нажалост, не можемо да направимо прилагођени само из <input>јер ЦСС contentне ради на том елементу.
У провереним стањима користимо басе64 уграђене СВГ иконе из Опен Ицониц . Ово нам пружа најбољу контролу за стилизовање и позиционирање у прегледачима и уређајима.
Поља за потврду
Прилагођена поља за потврду такође могу да користе :indeterminateпсеудо класу када се ручно подесе преко ЈаваСцрипт-а (нема доступног ХТМЛ атрибута за његово навођење).
Ако користите јКуери, нешто попут овога би требало да буде довољно:
Радио
У реду
Онемогућено
Прилагођени оквири за потврду и радио такође могу бити онемогућени. Додајте disabledлогички атрибут у <input>и прилагођени индикатор и опис ознаке ће бити аутоматски стилизовани.
Прекидачи
Прекидач има ознаку прилагођеног поља за потврду, али користи .custom-switchкласу за приказивање прекидача. Прекидачи такође подржавају disabledатрибут.
Изаберите мени
Прилагођеним <select>менијима је потребна само прилагођена класа .custom-selectда би покренули прилагођене стилове. Прилагођени стилови су ограничени на <select>почетни изглед и не могу да мењају <option>с због ограничења претраживача.
Такође можете бирати између малих и великих прилагођених одабира који одговарају нашим уносима текста сличне величине.
Атрибут multipleје такође подржан:
Као што је sizeатрибут:
Домет
Направите прилагођене <input type="range">контроле са .custom-range. И стаза (позадина) и палац (вредност) су стилизовани тако да изгледају исто у свим прегледачима. Пошто само ИЕ и Фирефок подржавају „испуњавање“ своје траке са леве или десне стране палца као средство за визуелно указивање на напредак, ми то тренутно не подржавамо.
Уноси опсега имају имплицитне вредности за minи max— 0и 100, респективно. Можете навести нове вредности за оне који користе атрибуте minи .max
Подразумевано, улази у опсег „прикаче“ се на целобројне вредности. Да бисте ово променили, можете одредити stepвредност. У примеру испод, удвостручимо број корака користећи step="0.5".
Прегледач датотека
Препоручени додатак за анимирање прилагођеног уноса датотеке: бс-цустом-филе-инпут , то је оно што тренутно користимо овде у нашим документима.
Унос датотеке је најгрубљи од гомиле и захтева додатни ЈаваСцрипт ако желите да их повежете са функционалним Изаберите датотеку... и текстом имена изабраног фајла.
Сакривамо подразумевану датотеку <input>преко opacityи уместо тога стилизујемо <label>. Дугме се генерише и позиционира са ::after. На крају, проглашавамо а widthи heightон <input>за правилан размак за околни садржај.
Превођење или прилагођавање стрингова помоћу СЦСС-а
:lang()Псеудо-класа се користи да омогући превод текста „Прегледај“ на друге језике. Замените или додајте уносе у $custom-file-textСасс променљиву са релевантном језичком ознаком и локализованим стринговима. Енглеске жице се могу прилагодити на исти начин. На пример, ево како се може додати шпански превод (шифра шпанског језика је es):
Ево lang(es)у акцији на прилагођеном уносу датотеке за шпански превод:
Мораћете да правилно подесите језик свог документа (или његовог подстабла) да би се приказао исправан текст. Ово се може урадити помоћу атрибутаlang на <html>елементу или Content-LanguageХТТП заглавља , између осталих метода.
Превођење или прилагођавање стрингова помоћу ХТМЛ-а
Боотстрап такође пружа начин за превођење текста „Прегледај“ у ХТМЛ са data-browseатрибутом који се може додати прилагођеној ознаци уноса (пример на холандском):