Bootstrap Формы

В этой главе мы узнаем, как использовать Bootstrap для создания форм. Bootstrap может создавать формы разных стилей с помощью некоторых простых HTML-тегов и расширенных классов.

Макет формы

Bootstrap предоставляет следующие типы макетов форм:

  • Вертикальная форма (по умолчанию)
  • Встроенная форма
  • Горизонтальная форма

Вертикальная или базовая форма

Базовая структура формы встроена в Bootstrap, и отдельные элементы управления формы автоматически получают некоторые глобальные стили. Шаги создания базовой формы перечислены ниже:

  • Добавьте к родительскому элементу <form>role="form"。
  • Поместите метки и элементы управления в div с классом.form-groupв <div>. Это необходимо для оптимальных отступов.
  • Добавьте class = ко всем текстовым элементам <input>, <textarea> и <select>form-control" 。

Пример

<form role="form"> <div class="form-group"> <label for="name">Имя</label> <input type="text" class="form-control" id="name" placeholder="Пожалуйста, введите ваше имя"> </div> <div class="form-group"> <label for="inputfile">Ввод файла</label> <input type="file" id="inputfile"> <p class="help-block">Вот пример текста справки блочного уровня.</p> </div> <div class="checkbox"> <label> <input type="checkbox">Пожалуйста, отметьте</label> </div> <button type="submit" class="btn btn-default">Отправить</button> </form>

Попробуйте »

Результат следующий:

基本表单

Встроенная форма

Если вам нужно создать форму, в которой все элементы расположены в одну строку, выровнены по левому краю, а подписи находятся рядом, добавьте класс к тегу <form>.form-inline。

Пример

<form class="form-inline" role="form"> <div class="form-group"> <label class="sr-only" for="name">Имя</label> <input type="text" class="form-control" id="name" placeholder="Пожалуйста, введите ваше имя"> </div> <div class="form-group"> <label class="sr-only" for="inputfile">Ввод файла</label> <input type="file" id="inputfile"> </div> <div class="checkbox"> <label> <input type="checkbox">Пожалуйста, отметьте</label> </div> <button type="submit" class="btn btn-default">Отправить</button> </form>

Попробуйте »

Результат следующий:

内联表单
  • По умолчанию элементы input, select и textarea в Bootstrap имеют ширину 100%. При использовании встроенных форм необходимо задать ширину для элементов управления формы.
  • Используя класс.sr-only, можно скрыть метки встроенной формы.

Горизонтальная форма

Горизонтальные формы отличаются от других форм не только объемом разметки, но и способом представления формы. Чтобы создать горизонтально расположенную форму, выполните следующие шаги:

  • Добавьте класс к родительскому элементу <form>.form-horizontal。
  • Поместите метки и элементы управления в div с классом.form-groupв <div>.
  • Добавьте класс к метке.control-label。

Пример

<form class="form-horizontal" role="form"> <div class="form-group"> <label for="firstname" class="col-sm-2 control-label">Имя</label> <div class="col-sm-10"> <input type="text" class="form-control" id="firstname" placeholder="Пожалуйста, введите ваше имя"> </div> </div> <div class="form-group"> <label for="lastname" class="col-sm-2 control-label">Фамилия</label> <div class="col-sm-10"> <input type="text" class="form-control" id="lastname" placeholder="Пожалуйста, введите вашу фамилию"> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <div class="checkbox"> <label> <input type="checkbox">Запомнить меня</label> </div> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-default">Войти</button> </div> </div> </форма>

Попробуйте »

Результат следующий:

水平表单

Поддерживаемые элементы управления формами

Bootstrap поддерживает наиболее распространённые элементы управления формами, в основномinput, textarea, checkbox, radio и select。

Ввод

Наиболее распространённым текстовым полем формы является input. В него пользователи могут ввести большинство необходимых данных формы. Bootstrap поддерживает все нативные типы ввода HTML5, включая:text、password、datetime、datetime-local、date、month、time、week、number、email、url、search、telиcolor. Правильное объявлениеtypeтребуется, чтобыinputполучал полные стили.

Пример

<form role="form"> <div class="form-group"> <label for="name">Метки</label> <input type="text" class="form" placeholder="Текстовое поле"> </div> </форма>

Попробуйте сами »

Результат следующий:

输入框

Текстовая область

Когда нужен многострочный ввод, можно использовать textarea. При необходимости можно изменить атрибутrows(меньше строк = меньше поле, больше строк = больше поле).

Пример

<form role="form"> <div class="form-group"> <label for="name">Текстовая область</label> <textarea class="form-control" rows="3"></textarea> </div> </form>

Попробуйте сами »

Результат следующий:

文本框

Флажки и радиокнопки

Флажки и радиокнопки используются, чтобы дать пользователям возможность выбрать один из набора предустановленных вариантов.

  • При создании формы, если вы хотите, чтобы пользователи выбирали несколько вариантов из списка, используйтеcheckbox. Если вы ограничиваете пользователей выбором только одного варианта, используйтеradio。
  • Для группы флажков и радиокнопок используйте класс.checkbox-inlineили.radio-inline, чтобы они отображались на одной строке.

В следующем примере демонстрируются оба типа (стандартный и встроенный):

Пример

<label for="name">Пример стандартных флажков и радиокнопок</label> <div class="checkbox"> <label><input type="checkbox" value="">Вариант 1</label> </div> <div class="checkbox"> <label><input type="checkbox" value="">Вариант 2</label> </div> <div class="radio"> <label> <input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked>Вариант 1</label> </div> <div class="radio"> <label> <input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">Вариант 2 - При выборе этого варианта выбор варианта 1 будет снят</label> </div> <label for="name">Пример встроенных флажков и радиокнопок</label> <div> <label class="checkbox-inline"> <input type="checkbox" id="inlineCheckbox1" value="option1">Вариант 1</label> <label class="checkbox-inline"> <input type="checkbox" id="inlineCheckbox2" value="option2">Вариант 2</label> <label class="checkbox-inline"> <input type="checkbox" id="inlineCheckbox3" value="option3">Вариант 3</label> <label class="radio-inline"> <input type="radio" name="optionsRadiosinline" id="optionsRadios3" value="option1" checked>Вариант 1</label> <label class="radio-inline"> <input type="radio" name="optionsRadiosinline" id="optionsRadios4" value="option2">Вариант 2</label> </div>

Попробуйте сами »

Результат следующий:

复选框和单选按钮

Выбор

Когда нужно, чтобы пользователи выбирали из нескольких вариантов, но по умолчанию можно выбрать только один, используйте выпадающий список.

  • Используйте <select>, чтобы отобразить список вариантов, обычно списки, с которыми пользователи знакомы, например штаты или числа.
  • Используйтеmultiple="multiple", чтобы позволить пользователям выбирать несколько вариантов.

Следующий пример демонстрирует оба типа (select и multiple):

Пример

<form role="form"> <div class="form-group"> <label for="name">Список выбора</label> <select class="form-control"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> </select> <label for="name">Список выбора с множественным выбором</label> <select multiple class="form-control"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> </select> </div> </form>

Попробуйте сами »

Результат следующий:

选择框

Статические элементы управления

Когда вам нужно разместить обычный текст после метки формы в горизонтальной форме, используйте класс.form-control-static для <p>。

Пример

<form class="form-horizontal" role="form"> <div class="form-group"> <label class="col-sm-2 control-label">Эл. почта</label> <div class="col-sm-10"> <p class="form-control-static">[email protected]</p> </div> </div> <div class="form-group"> <label for="inputPassword" class="col-sm-2 control-label">Пароль</label> <div class="col-sm-10"> <input type="password" class="form-control" id="inputPassword" placeholder="Введите пароль"> </div> </div> </form>

Попробуйте сами »

Результат следующий:

静态控件

Состояния элементов управления формы

Помимо:focusсостояния (т. е. когда пользователь щёлкает по полю ввода или использует клавишу Tab, чтобы сфокусироваться на поле ввода), Bootstrap также определяет стили для отключённых полей ввода и предоставляет классы проверки формы.

Фокус на поле ввода

Когда поле ввода получает:focus, у поля ввода удаляется контур и добавляетсяbox-shadow。

Отключённое поле ввода

Если вы хотите отключить поле ввода, просто добавьте атрибутdisabled, который не только отключает поле ввода, но также изменяет его стиль и стиль курсора мыши при наведении указателя на элемент.

Отключенный fieldset

Добавьте атрибут disabled к <fieldset>, чтобы отключить все элементы управления внутри <fieldset>.

Состояния валидации

Bootstrap включает стили валидации для сообщений об ошибке, предупреждении и успехе. Просто добавьте соответствующий класс к родительскому элементу (.has-warning, .has-error, или .has-success), чтобы использовать состояния валидации.

В следующем примере демонстрируются все состояния элементов управления:

Пример

<form class="form-horizontal" role="form"> <div class="form-group"> <label class="col-sm-2 control-label">Фокус</label> <div class="col-sm-10"> <input class="form-control" id="focusedInput" type="text" value="Это поле ввода получает фокус..."> </div> </div> <div class="form-group"> <label for="inputPassword" class="col-sm-2 control-label">Отключено</label> <div class="col-sm-10"> <input class="form-control" id="disabledInput" type="text" placeholder="Это поле нельзя редактировать..." disabled> </div> </div> <fieldset disabled> <div class="form-group"> <label for="disabledTextInput" class="col-sm-2 control-label">Отключённое поле ввода (Fieldset отключён)</label> <div class="col-sm-10"> <input type="text" id="disabledTextInput" class="form-control" placeholder="Недоступно для редактирования"> </div> </div> <div class="form-group"> <label for="disabledSelect" class="col-sm-2 control-label">Отключённое меню выбора (Fieldset отключён)</label> <div class="col-sm-10"> <select id="disabledSelect" class="form-control"> <option>Недоступно для выбора</option> </select> </div> </div> </fieldset> <div class="form-group has-success"> <label class="col-sm-2 control-label" for="inputSuccess">Успешный ввод</label> <div class="col-sm-10"> <input type="text" class="form-control" id="inputSuccess"> </div> </div> <div class="form-group has-warning"> <label class="col-sm-2 control-label" for="inputWarning">Предупреждение ввода</label> <div class="col-sm-10"> <input type="text" class="form-control" id="inputWarning"> </div> </div> <div class="form-group has-error"> <label class="col-sm-2 control-label" for="inputError">Ошибка ввода</label> <div class="col-sm-10"> <input type="text" class="form-control" id="inputError"> </div> </div> </форма>

Попробуйте сами »

Результаты следующие:

表单控件状态

Размеры элементов управления формы

Вы можете использовать класс.input-lgи.col-lg-*, чтобы задать высоту и ширину формы. Следующий пример демонстрирует это:

Пример

<form role="form"> <div class="form-group"> <input class="form-control input-lg" type="text" placeholder=".input-lg"> </div> <div class="form-group"> <input class="form-control" type="text" placeholder="Ввод по умолчанию"> </div> <div class="form-group"> <input class="form-control input-sm" type="text" placeholder=".input-sm"> </div> <div class="form-group"></div> <div class="form-group"> <select class="form-control input-lg"> <option value="">.input-lg</option> </select> </div> <div class="form-group"> <select class="form-control"> <option value="">Выбор по умолчанию</option> </select> </div> <div class="form-group"> <select class="form-control input-sm"> <option value="">.input-sm</option> </select> </div> <div class="row"> <div class="col-lg-2"> <input type="text" class="form-control" placeholder=".col-lg-2"> </div> <div class="col-lg-3"> <input type="text" class="form-control" placeholder=".col-lg-3"> </div> <div class="col-lg-4"> <input type="text" class="form-control" placeholder=".col-lg-4"> </div> </div> </form>

Попробуйте сами »

Результаты следующие:

表单控件大小

Текст подсказки формы

Элементы управления формы Bootstrap могут иметь блочный текст подсказки у элемента input. Чтобы добавить блок содержимого, занимающий всю ширину, используйте его после <input>.help-block. Следующий пример демонстрирует это:

Пример

<form role="form"> <span>Пример текста подсказки</span> <input class="form-control" type="text" placeholder=""> <span class="help-block">Более длинный блок текста подсказки, который превышает одну строку и должен переноситься на следующую строку. Текст подсказки в этом примере занимает всего две строки.</span> </form>

Попробуйте сами »

Результаты следующие:

表单帮助文本
Другие расширения