Элементы управления формами
Пример
Элементы управления формами стилизуются с помощью Sass и CSS-переменных, что позволяет им адаптироваться к режиму цвета и поддерживать любые методы настройки.
<div class="mb-3"> <label for="exampleFormControlInput1" class="form-label">Email address</label> <input type="email" class="form-control" id="exampleFormControlInput1" placeholder="name@example.com"> </div> <div class="mb-3"> <label for="exampleFormControlTextarea1" class="form-label">Example textarea</label> <textarea class="form-control" id="exampleFormControlTextarea1" rows="3"></textarea> </div>
Размер
Установите высоту, используя классы, такие как .form-control-lg и .form-control-sm.
<input class="form-control form-control-lg" type="text" placeholder=".form-control-lg" aria-label=".form-control-lg example"> <input class="form-control" type="text" placeholder="Default input" aria-label="default input example"> <input class="form-control form-control-sm" type="text" placeholder=".form-control-sm" aria-label=".form-control-sm example">
Текст формы
Текстовые элементы формы блочного или инлайнового типа могут быть созданы с использованием .form-text.
aria-describedby. Это гарантирует, что вспомогательные технологии, такие как экранные читалки, будут объявлять этот текст формы, когда пользователь фокусируется на элементе управления или вводит данные.Текст формы, расположенный под полями ввода, может быть стилизован с помощью .form-text Если будет использован блочный элемент, для удобства выравнивания с полями ввода выше добавляется верхний отступ.
<label for="inputPassword5" class="form-label">Password</label> <input type="password" id="inputPassword5" class="form-control" aria-describedby="passwordHelpBlock"> <div id="passwordHelpBlock" class="form-text"> Your password must be 8-20 characters long, contain letters and numbers, and must not contain spaces, special characters, or emoji. </div>
Инлайновый текст может использовать любые стандартные инлайновые HTML-элементы (будь то <span>, <small>, или что-то другое) без чего-либо, кроме класса .form-text.
<div class="row g-3 align-items-center">
<div class="col-auto">
<label for="inputPassword6" class="col-form-label">Password</label>
</div>
<div class="col-auto">
<input type="password" id="inputPassword6" class="form-control" aria-describedby="passwordHelpInline">
</div>
<div class="col-auto">
<span id="passwordHelpInline" class="form-text">
Must be 8-20 characters long.
</span>
</div>
</div>
Отключенные элементы
Добавьте булевый атрибут disabled к элементу ввода, чтобы придать ему отсеченный вид, удалить события указания и предотвратить фокусировку.
<input class="form-control" type="text" placeholder="Disabled input" aria-label="Disabled input example" disabled> <input class="form-control" type="text" value="Disabled readonly input" aria-label="Disabled input example" disabled readonly>
Только чтение
Добавьте булевый атрибут readonly к элементу ввода, чтобы предотвратить изменение значения элемента ввода. readonly поля ввода все еще могут получать фокус и выбираться, в то время как disabled поля ввода не могут.
<input class="form-control" type="text" value="Readonly input here..." aria-label="readonly input example" readonly>
Только чтение (простой текст)
Если вы хотите, чтобы элементы <input readonly> в вашей форме отображались как простой текст, замените .form-control на .form-control-plaintext, чтобы удалить стандартную стилизацию полей формы и сохранить правильные margin и padding.
<div class="mb-3 row">
<label for="staticEmail" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="text" readonly class="form-control-plaintext" id="staticEmail" value="email@example.com">
</div>
</div>
<div class="mb-3 row">
<label for="inputPassword" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword">
</div>
</div>
<form class="row g-3">
<div class="col-auto">
<label for="staticEmail2" class="visually-hidden">Email</label>
<input type="text" readonly class="form-control-plaintext" id="staticEmail2" value="email@example.com">
</div>
<div class="col-auto">
<label for="inputPassword2" class="visually-hidden">Password</label>
<input type="password" class="form-control" id="inputPassword2" placeholder="Password">
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary mb-3">Confirm identity</button>
</div>
</form>
Ввод файла
<div class="mb-3"> <label for="formFile" class="form-label">Default file input example</label> <input class="form-control" type="file" id="formFile"> </div> <div class="mb-3"> <label for="formFileMultiple" class="form-label">Multiple files input example</label> <input class="form-control" type="file" id="formFileMultiple" multiple> </div> <div class="mb-3"> <label for="formFileDisabled" class="form-label">Disabled file input example</label> <input class="form-control" type="file" id="formFileDisabled" disabled> </div> <div class="mb-3"> <label for="formFileSm" class="form-label">Small file input example</label> <input class="form-control form-control-sm" id="formFileSm" type="file"> </div> <div> <label for="formFileLg" class="form-label">Large file input example</label> <input class="form-control form-control-lg" id="formFileLg" type="file"> </div>
Цвет
Установите type="color" и добавьте .form-control-color к <input>. Мы используем модификатор класса для установки фиксированных height и переопределения некоторых несоответствий между браузерами.
<label for="exampleColorInput" class="form-label">Color picker</label> <input type="color" class="form-control form-control-color" id="exampleColorInput" value="#563d7c" title="Choose your color">
Списки данных
Списки данных позволяют создавать группу <option> , к которым можно получить доступ (и выполнить автодополнение) из <input>. Они похожи на элементы <select>, но имеют больше ограничений и различий в стиле меню. Хотя большинство браузеров и операционных систем поддерживают элементы <datalist>, их стилизация является в лучшем случае несогласованной.
Узнайте больше о поддержке элементов datalist.
<label for="exampleDataList" class="form-label">Datalist example</label> <input class="form-control" list="datalistOptions" id="exampleDataList" placeholder="Type to search..."> <datalist id="datalistOptions"> <option value="San Francisco"> <option value="New York"> <option value="Seattle"> <option value="Los Angeles"> <option value="Chicago"> </datalist>
CSS
Переменные Sass
$input-* используются во многих наших элементах управления формами (и не кнопках).
$input-padding-y: $input-btn-padding-y;
$input-padding-x: $input-btn-padding-x;
$input-font-family: $input-btn-font-family;
$input-font-size: $input-btn-font-size;
$input-font-weight: $font-weight-base;
$input-line-height: $input-btn-line-height;
$input-padding-y-sm: $input-btn-padding-y-sm;
$input-padding-x-sm: $input-btn-padding-x-sm;
$input-font-size-sm: $input-btn-font-size-sm;
$input-padding-y-lg: $input-btn-padding-y-lg;
$input-padding-x-lg: $input-btn-padding-x-lg;
$input-font-size-lg: $input-btn-font-size-lg;
$input-bg: var(--#{$prefix}body-bg);
$input-disabled-color: null;
$input-disabled-bg: var(--#{$prefix}secondary-bg);
$input-disabled-border-color: null;
$input-color: var(--#{$prefix}body-color);
$input-border-color: var(--#{$prefix}border-color);
$input-border-width: $input-btn-border-width;
$input-box-shadow: $box-shadow-inset;
$input-border-radius: var(--#{$prefix}border-radius);
$input-border-radius-sm: var(--#{$prefix}border-radius-sm);
$input-border-radius-lg: var(--#{$prefix}border-radius-lg);
$input-focus-bg: $input-bg;
$input-focus-border-color: tint-color($component-active-bg, 50%);
$input-focus-color: $input-color;
$input-focus-width: $input-btn-focus-width;
$input-focus-box-shadow: $input-btn-focus-box-shadow;
$input-placeholder-color: var(--#{$prefix}secondary-color);
$input-plaintext-color: var(--#{$prefix}body-color);
$input-height-border: calc(#{$input-border-width} * 2); // stylelint-disable-line function-disallowed-list
$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2);
$input-height-inner-half: add($input-line-height * .5em, $input-padding-y);
$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5);
$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false));
$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false));
$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false));
$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
$form-color-width: 3rem;
$form-label-* и $form-text-* предназначены для наших <label> и компонента .form-text.
$form-label-margin-bottom: .5rem; $form-label-font-size: null; $form-label-font-style: null; $form-label-font-weight: null; $form-label-color: null;
$form-text-margin-top: .25rem;
$form-text-font-size: $small-font-size;
$form-text-font-style: null;
$form-text-font-weight: null;
$form-text-color: var(--#{$prefix}secondary-color);
$form-file-* предназначены для ввода файла.
$form-file-button-color: $input-color;
$form-file-button-bg: var(--#{$prefix}tertiary-bg);
$form-file-button-hover-bg: var(--#{$prefix}secondary-bg);
© 2011–2022 Twitter, Inc.
© 2011–2022 The Bootstrap Authors
Code licensed under the MIT License.
Documentation licensed under the Creative Commons Attribution License v3.0.
https://getbootstrap.com/docs/5.3/forms/form-control/