С помощью компонента Формы можно создавать красивые адаптивные формы.
Как использовать компонент Формы в Uikit 3
Добавьте один из следующих классов, чтобы сформировать элементы управления внутри тега <form>
.
Класс | Описание |
---|---|
.uk-input |
Добавьте этот класс для элемента <input> . |
.uk-select |
Добавьте этот класс для элемента <select> . |
.uk-textarea |
Добавьте этот класс для элемента <textarea> . |
.uk-radio |
Добавьте этот класс для элемента <input type="radio"> , чтобы стилизовать радио кнопку. |
.uk-checkbox |
Добавьте этот класс для элемента <input type="checkbox"> , чтобы стилизовать чекбоксы. |
.uk-range |
Добавьте этот класс для элемента <input type="range"> , чтобы стилизовать слайдер диапазона. |
<form>
<select class="uk-select">
<option></option>
<option></option>
</select>
<textarea class="uk-textarea"></textarea>
<input class="uk-radio" type="radio">
<input class="uk-checkbox" type="checkbox">
<input class="uk-range" type="range">
</form>
Добавьте класс .uk-fieldset
к элементу <fieldset>
и класс .uk-legend
к элементу <legend>
, чтобы задать набор полей и легенду формы.
<form> <fieldset class="uk-fieldset"> <legend class="uk-legend">Легенда</legend> <div class="uk-margin"> <input class="uk-input" type="text" placeholder="Input"> </div> <div class="uk-margin"> <select class="uk-select"> <option>Опция 01</option> <option>Опция 02</option> </select> </div> <div class="uk-margin"> <textarea class="uk-textarea" rows="5" placeholder="Textarea"></textarea> </div> <div class="uk-margin uk-grid-small uk-child-width-auto uk-grid"> <label><input class="uk-radio" type="radio" name="radio2" checked> A</label> <label><input class="uk-radio" type="radio" name="radio2"> B</label> </div> <div class="uk-margin uk-grid-small uk-child-width-auto uk-grid"> <label><input class="uk-checkbox" type="checkbox" checked> A</label> <label><input class="uk-checkbox" type="checkbox"> B</label> </div> <div class="uk-margin"> <input class="uk-range" type="range" value="2" min="0" max="10" step="0.1"> </div> </fieldset> </form>
Модификаторы состояния
Предоставьте пользователю информацию о состоянии элементов управления формы с помощью одного из следующих классов. Эти классы следует использовать для валидации форм UIkit.
Класс | Описание |
---|---|
.uk-form-danger |
Добавьте этот класс, чтобы уведомить пользователя о том, что значение не проверено. |
.uk-form-success |
Добавьте этот класс, чтобы уведомить пользователя о том, что значение проверено. |
Добавьте атрибут disabled
к элементу управления формы, и он будет казаться приглушенным.
<div class="uk-margin"> <input class="uk-input uk-form-danger uk-form-width-medium" type="text" placeholder="form-danger" value="form-danger"> </div> <div class="uk-margin"> <input class="uk-input uk-form-success uk-form-width-medium" type="text" placeholder="form-success" value="form-success"> </div> <div class="uk-margin"> <input class="uk-input uk-form-width-medium" type="text" placeholder="disabled" value="disabled" disabled> </div>
Модификаторы размера
Добавьте один из классов к <input>
, <select>
или <textarea>
для изменения его размера.
Класс | Описание |
---|---|
.uk-form-large |
Этот класс увеличивает размер элемента. |
.uk-form-small |
Этот класс уменьшает размер элемента . |
<form> <div class="uk-margin"> <input class="uk-input uk-form-width-medium uk-form-large" type="text" placeholder="Большой"> </div> <div class="uk-margin"> <input class="uk-input uk-form-width-medium" type="text" placeholder="Стандартный"> </div> <div class="uk-margin"> <input class="uk-input uk-form-width-medium uk-form-small" type="text" placeholder="Маленький"> </div> </form>
Модификаторы ширины
Добавьте один из этих классов к эементу <input>
, <select>
или <textarea>
для установки ширины.
Class | Description |
---|---|
.uk-form-width-large |
Задает ширину 500px. |
.uk-form-width-medium |
Задает ширину 200px. |
.uk-form-width-small |
Задает ширину 130px. |
.uk-form-width-xsmall |
Задает ширину 40px. |
<form> <div class="uk-margin"> <input class="uk-input uk-form-width-large" type="text" placeholder="Большой"> </div> <div class="uk-margin"> <input class="uk-input uk-form-width-medium" type="text" placeholder="Средний"> </div> <div class="uk-margin"> <input class="uk-input uk-form-width-small" type="text" placeholder="Маленький"> </div> <div class="uk-margin"> <input class="uk-input uk-form-width-xsmall" type="text" placeholder="Очень маленький"> </div> </form>
Вы можете добавить классы семейства .uk-width-*
из компонента Ширина для применения большего количества вариантов.
<form> <input class="uk-input uk-width-1-2" type="text" placeholder="uk-width-1-2"> </form>
Модификатор минимизации стилей
Добавьте класс .uk-form-blank
для минимизации стиля элементов управления формы.
<form> <input class="uk-input uk-form-blank uk-form-width-medium" type="text" placeholder="Form blank"> </form>
Макет формы
Определите метки и элементы управления, примените сложенный или горизонтальный макет к элементам формы.
Модификаторы макета могут быть добавлены к любому родительскому элементу, например <fieldset>
.
Это позволяет иметь разные макеты форм для каждого набора полей.
Класс | Описание |
---|---|
.uk-form-stacked |
Добавьте этот класс для отображения надписей над элементами управления. |
.uk-form-horizontal |
Добавьте этот класс для отображения меток и элементов управления рядом. |
.uk-form-label |
Добавьте этот класс для определения меток формы. |
.uk-form-controls |
Добавьте этот класс для определения элементов управления формы. |
<form class="uk-form-stacked">
<div>
<label class="uk-form-label"></label>
<div class="uk-form-controls">...</div>
</div>
<div>
<div class="uk-form-label"></div>
<div class="uk-form-controls">...</div>
</div>
</form>
<form class="uk-form-stacked"> <div class="uk-margin"> <label class="uk-form-label" for="form-stacked-text">Текст</label> <div class="uk-form-controls"> <input class="uk-input" id="form-stacked-text" type="text" placeholder="Какой-то текст..."> </div> </div> <div class="uk-margin"> <label class="uk-form-label" for="form-stacked-select">Селект</label> <div class="uk-form-controls"> <select class="uk-select" id="form-stacked-select"> <option>Опция 01</option> <option>Опция 02</option> </select> </div> </div> <div class="uk-margin"> <div class="uk-form-label">Радиокнопки</div> <div class="uk-form-controls"> <label><input class="uk-radio" type="radio" name="radio1"> Опция 01</label><br> <label><input class="uk-radio" type="radio" name="radio1"> Опция 02</label> </div> </div> </form>
Горизонтальные формы
Используйте класс .uk-form-controls-text
для качественного выравнивания флажков и переключателей при
использовании их с текстом в горизонтальной компоновке.
<form class="uk-form-horizontal">
<div>
<label class="uk-form-label"></label>
<div class="uk-form-controls">...</div>
</div>
<div>
<div class="uk-form-label"></div>
<div class="uk-form-controls uk-form-controls-text">...</div>
</div>
</form>
<form class="uk-form-horizontal uk-margin-large"> <div class="uk-margin"> <label class="uk-form-label" for="form-horizontal-text">Текст</label> <div class="uk-form-controls"> <input class="uk-input" id="form-horizontal-text" type="text" placeholder="Какой-то текст..."> </div> </div> <div class="uk-margin"> <label class="uk-form-label" for="form-horizontal-select">Select</label> <div class="uk-form-controls"> <select class="uk-select" id="form-horizontal-select"> <option>Опция 01</option> <option>Опция 02</option> </select> </div> </div> <div class="uk-margin"> <div class="uk-form-label">Radio</div> <div class="uk-form-controls uk-form-controls-text"> <label><input class="uk-radio" type="radio" name="radio1"> Опция 01</label><br> <label><input class="uk-radio" type="radio" name="radio1"> Опция 02</label> </div> </div> </form>
Формы и иконки
Вы можете использовать формы вместе с иконками из компонента Иконки.
Добавьте класс .uk-form-icon
к элементу <span>
.
Сгруппируйте их с элементами <input>
и добавьте класс .uk-inline
из компонента Utility component
к родительскому контейнеру.
Иконка должна стоять первой в разметке.
По умолчанию иконка будет размещена в левой части формы. Чтобы изменить ее положение, задайте класс .uk-form-icon-flip
.
<div class="uk-inline">
<span class="uk-form-icon" uk-icon="icon: user"></span>
<input class="uk-input">
</div>
<form> <div class="uk-margin"> <div class="uk-inline"> <span class="uk-form-icon" uk-icon="icon: user"></span> <input class="uk-input" type="text"> </div> </div> <div class="uk-margin"> <div class="uk-inline"> <span class="uk-form-icon uk-form-icon-flip" uk-icon="icon: lock"></span> <input class="uk-input" type="text"> </div> </div> </form>
Кликабельные иконки
Чтобы включить действие, например, открыть модальное окно, используйте элементы <a>
или <button>
и добавьте в них иконку.
<div class="uk-inline">
<a class="uk-form-icon uk-form-icon-flip" href="" uk-icon="icon: user"></a>
<input class="uk-input">
</div>
<form> <div class="uk-margin"> <div class="uk-inline"> <a class="uk-form-icon" href="#" uk-icon="icon: pencil"></a> <input class="uk-input" type="text"> </div> </div> <div class="uk-margin"> <div class="uk-inline"> <a class="uk-form-icon uk-form-icon-flip" href="#" uk-icon="icon: link"></a> <input class="uk-input" type="text"> </div> </div> </form>
Формы и сетка
Вы можете использовать компоненты Сетка и Ширина для создания сложных макетов форм.
<form class="uk-grid-small" uk-grid> <div class="uk-width-1-1"> <input class="uk-input" type="text" placeholder="100"> </div> <div class="uk-width-1-2@s"> <input class="uk-input" type="text" placeholder="50"> </div> <div class="uk-width-1-4@s"> <input class="uk-input" type="text" placeholder="25"> </div> <div class="uk-width-1-4@s"> <input class="uk-input" type="text" placeholder="25"> </div> <div class="uk-width-1-2@s"> <input class="uk-input" type="text" placeholder="50"> </div> <div class="uk-width-1-2@s"> <input class="uk-input" type="text" placeholder="50"> </div> </form>
Пользовательская разметка
Чтобы заменить входные файлы или выбрать формы с вашим собственным содержимым HTML, например,
кнопка или текст, добавьте атрибут uk-form-custom
к родительскому элементу.
Файл
Используйте кнопку или текст в качестве элемента загрузки файла.
<div uk-form-custom>
<input type="file">
<button type="button"></button>
</div>
<form> <div class="uk-margin"> <div uk-form-custom> <input type="file"> <button class="uk-button uk-button-default" type="button" tabindex="-1">Селект</button> </div> </div> <div class="uk-margin"> <span class="uk-text-middle">Это текст</span> <div uk-form-custom> <input type="file"> <span class="uk-link">Загрузить</span> </div> </div> <div class="uk-margin" uk-margin> <div uk-form-custom="target: true"> <input type="file"> <input class="uk-input uk-form-width-medium" type="text" placeholder="Выбрать файл" disabled> </div> <button class="uk-button uk-button-default">Отправить</button> </div> </form>
Селекты
Используйте кнопку, текст или ссылку в качестве формы выбора.
Задайте опцию target: SELECTOR
к атрибуту uk-form-custom
, чтобы выбрать, где должен отображаться select.
target: true
выберет соседний элемент в разметке.
<div uk-form-custom="target: true">
<select>
<option></option>
<option></option>
</select>
<button type="button"></button>
</div>
<form> <div class="uk-margin"> <div uk-form-custom="target: true"> <select> <option value="1">Опция 01</option> <option value="2">Опция 02</option> <option value="3">Опция 03</option> <option value="4">Опция 04</option> </select> <span></span> </div> </div> <div class="uk-margin"> <div uk-form-custom="target: > * > span:last-child"> <select> <option value="1">Опция 01</option> <option value="2">Опция 02</option> <option value="3">Опция 03</option> <option value="4">Опция 04</option> </select> <span class="uk-link"> <span uk-icon="icon: pencil"></span> <span></span> </span> </div> </div> <div class="uk-margin"> <div uk-form-custom="target: > * > span:first-child"> <select> <option value="">Выберите...</option> <option value="1">Опция 01</option> <option value="2">Опция 02</option> <option value="3">Опция 03</option> <option value="4">Опция 04</option> </select> <button class="uk-button uk-button-default" type="button" tabindex="-1"> <span></span> <span uk-icon="icon: chevron-down"></span> </button> </div> </div> </form>
Опции компонента
Вы можете добавлять следующие опции к атрибуту uk-form-custom
. Подробнее об атрибутах
Опция | Значение | По умолчанию | Описание |
---|---|---|---|
target |
CSS selector, Boolean | false | Значение цели для отображения селекта. |
JavaScript
Подробнее о JavaScript компонентах.
Инициализация
UIkit.formCustom(element, options);