Примери и упатства за употреба за стилови за контрола на форми, опции за распоред и сопствени компоненти за создавање широк спектар на форми.
Преглед
Контролите на формата на Bootstrap се прошируваат на нашите рестартирани стилови на форми со класи. Користете ги овие класи за да се вклучите во нивните приспособени прикази за поконзистентно прикажување низ прелистувачите и уредите.
Погрижете се да користите соодветен typeатрибут на сите влезови (на пр., emailза адреса на е-пошта или numberза нумерички информации) за да ги искористите предностите од поновите контроли за внесување, како што се проверка на е-пошта, избор на број и друго.
Еве брз пример за демонстрација на стиловите на формите на Bootstrap. Продолжете да читате за документација за потребните часови, распоред на формулари и многу повеќе.
Контроли на формулари
Контролите на текстуалната форма - како <input>s, <select>s и <textarea>s - се стилизирани со .form-controlкласата. Вклучени се стилови за општ изглед, состојба на фокус, големина и многу повеќе.
Бидете сигурни да ги истражите нашите сопствени форми за да го дополните стилот <select>.
За внесување датотеки, заменете го .form-controlза .form-control-file.
Димензионирање
Поставете висини користејќи класи како .form-control-lgи .form-control-sm.
Само Читај
Додадете го readonlyбуловиот атрибут на влез за да спречите промена на вредноста на влезот. Влезовите само за читање изгледаат полесни (исто како и оневозможените влезови), но го задржуваат стандардниот курсор.
Обичен текст само за читање
Ако сакате да имате <input readonly>елементи во вашата форма стилизирани како обичен текст, користете ја .form-control-plaintextкласата за да го отстраните стандардниот стил на полето за форма и да ја зачувате точната маргина и пополнување.
Влезови за опсег
Поставете хоризонтално лизгачки влезови за опсег користејќи .form-control-range.
Поле за избор и радија
Стандардните полиња за избор и радија се подобрени со помош на .form-check, единечна класа за двата типа на влез што го подобрува распоредот и однесувањето на нивните HTML елементи . Полето за избор се за избор на една или неколку опции во списокот, додека радијата се за избор на една опција од многу.
Оневозможените полиња за избор и радија се поддржани, но за да обезбедите not-allowedпокажувач на лебдењето на родителот <label>, ќе треба да го додадете disabledатрибутот во .form-check-input. Оневозможениот атрибут ќе примени посветла боја за да помогне да се покаже состојбата на влезот.
Полето за избор и употребата на радија се создадени за да поддржуваат валидација на формулари базирана на 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 во a .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атрибутот boolean на влез за да спречите интеракции со корисникот и да изгледате полесни.
Додајте го 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применетите на контролите на вашата форма.
Стандардно на прелистувачот
Не сте заинтересирани за приспособени пораки за повратни информации за валидација или пишување JavaScript за да го промените однесувањето на формата? Сè е добро, можете да ги користите стандардните поставки на прелистувачот. Обидете се да го испратите формуларот подолу. Во зависност од вашиот прелистувач и ОС, ќе видите малку поинаков стил на повратни информации.
Иако овие стилови на повратни информации не можат да се стилизираат со CSS, сепак можете да го приспособите текстот за повратни информации преку JavaScript.
Серверска страна
Препорачуваме да користите валидација од страна на клиентот, но во случај да ви треба серверска страна, можете да наведете неважечки и валидни полиња за формулари со .is-invalidи .is-valid. Забележете дека .invalid-feedbackе поддржано и со овие класи.
Поддржани елементи
Нашите примерни формулари покажуваат мајчин текстуални <input>s погоре, но стиловите за валидација на формулари се достапни и за нашите сопствени контроли на формулари.
Совети за алатки
Ако вашиот распоред на формата го дозволува тоа, можете да ги замените .{valid|invalid}-feedbackкласите за .{valid|invalid}-tooltipкласи за да се прикажат повратните информации за валидација во стилизиран совет за алатка. Погрижете се да имате родител со position: relativeнего за позиционирање на врвот на алатката. Во примерот подолу, нашите класи на колони веќе го имаат ова, но вашиот проект може да бара алтернативно поставување.
Прилагодени форми
За уште повеќе приспособување и конзистентност на вкрстениот прелистувач, користете ги нашите целосно приспособени елементи на формуларот за да ги замените стандардните поставки на прелистувачот. Тие се изградени врз семантичко и достапно обележување, така што тие се солидна замена за секоја стандардна контрола на формата.
Поле за избор и радија
Секое поле за избор и радио е завиткано во <div>со брат или сестра <span>за да се создаде нашата сопствена контрола и а <label>за придружниот текст. Структурно, ова е истиот пристап како нашиот стандарден .form-check.
Го користиме избирачот за брат или сестра ( ~) за сите наши <input>состојби — како :checked— за правилно да го стилизираме нашиот приспособен индикатор за форма. Кога се комбинираат со .custom-control-labelкласата, можеме исто така да го стилизираме текстот за секоја ставка врз основа на состојбата <input>'.
Го криеме стандардното <input>со opacityи го користиме за .custom-control-labelда изградиме нов индикатор за приспособена форма на негово место со ::beforeи ::after. За жал, не можеме да изградиме приспособена само од таа <input>бидејќи CSS contentне работи на тој елемент.
Во штиклираните состојби, ние користиме икони на база 64 вградени SVG од Open Iconic . Ова ни обезбедува најдобра контрола за стилизирање и позиционирање низ прелистувачите и уредите.
Поле за избор
Прилагодените полиња за избор исто така може да ја користат :indeterminateпсевдо класата кога рачно се поставуваат преку JavaScript (нема достапен HTML атрибут за негово одредување).
Ако користите jQuery, нешто како ова треба да биде доволно:
Радија
Во линија
Оневозможено
Прилагодените полиња за избор и радија, исто така, може да се оневозможат. Додадете го disabledбулов атрибутот на <input>и прилагодениот индикатор и описот на етикетата ќе бидат автоматски стилизирани.
Изберете мени
<select>На приспособените менија им е потребна само приспособена класа, .custom-selectза да ги активираат сопствените стилови . Прилагодените стилови се ограничени на <select>првичниот изглед и не можат да ги менуваат <option>s поради ограничувањата на прелистувачот.
Можете исто така да изберете од мали и големи приспособени избирања за да одговараат на нашите внесувања на текст со слична големина.
Атрибутот multipleе исто така поддржан:
Како што е sizeатрибутот:
Опсег
Креирајте сопствени <input type="range">контроли со .custom-range. Песната (заднината) и палецот (вредноста) се стилизирани да се појавуваат исто низ прелистувачите. Бидејќи само IE и Firefox поддржуваат „пополнување“ на нивната песна од левата или десната страна на палецот како средство за визуелно означување на напредокот, ние во моментов не го поддржуваме.
Влезовите за опсег имаат имплицитни вредности за minи max— 0и 100, соодветно. Може да наведете нови вредности за оние што ги користат атрибутите minи .max
Стандардно, опсегот внесува „snap“ на цели броеви. За да го промените ова, можете да наведете stepвредност. Во примерот подолу, го удвојуваме бројот на чекори со користење на step="0.5".
Прелистувач на датотеки
Внесувањето на датотеката е најтешкото од купот и бара дополнителен JavaScript доколку сакате да ги поврзете со функционалната Изберете датотека… и избраниот текст за името на датотеката.
Ја криеме стандардната датотека <input>преку opacityи наместо тоа стилизираме <label>. Копчето се генерира и позиционира со ::after. И на крај, декларираме a widthи heightна <input>за правилно растојание за околните содржини.
Преведување или прилагодување на низите
:lang()Псевдо-класата се користи за да се овозможи превод на текстот „Преглед“ на други јазици. Отфрлете ги или додајте записи во $custom-file-textпроменливата Sass со соодветната јазична ознака и локализирани низи. Англиските жици може да се прилагодат на ист начин. На пример, еве како некој може да додаде шпански превод (шифрата на шпанскиот јазик е es):
Еве lang(es)во акција за приспособениот внес на датотека за превод на шпански:
Ќе треба правилно да го поставите јазикот на вашиот документ (или поддрвото од него) за да се прикаже точниот текст. Ова може да се направи со користење на langатрибутот на <html>елементот или Content-Languageзаглавието на HTTP , меѓу другите методи.