Использование и стилизация input checkbox
Время на прочтение: 2 мин.В данной статье мы поговорим об использовании и стилизации элементов checkbox(далее чекбоксов) на вашем сайте. При верстке сайта разработчики сталкиваются с проблемой стилизации чекбоксов, многие так же используют их не там где надо. Давайте познакомимся с этим элементов поближе.
Что такое чекбокс?
Checkbox с английского переводится как «флажок». Это элемент пользовательского интерфейса, позволяющий пользователю управлять параметром с двумя состояниями — ☑ включено и ☐ отключено. В включенном состоянии внутри чекбокса отображается галочка ✓, иногда можно использовать крестик. По традиции чекбокс имеет квадратную форму.
В html формах для вывода чекбокса используется код: <input type= "checkbox">
Применение чекбоксов
Чекбоксы применяют:
- для выбора элементов из списка. Например, выбор массового действия.
- Для выбора параметров. Например, включение уведомлений.
- Подтверждение действий. Например, согласие на обработку персональных данных.
Чекбокс не запускает действие сразу. Для этого, обычно, необходимо нажать на кнопку. Для включение какого-либо режима сразу рекомендуется использование тугла(toogle):
Элемент toogleНекоторые разработчики неправильно применяют чекбоксы в интерфейсе. Например, при выборе из нескольких параметров следует использовать тип radio:
Правильное применение checkboxСоздание стандартных чекбоксов
Ниже продемонстрирован пример создания стандартных чекбоксов.
See the Pen Untitled by Токмаков Александр (@calliko) on CodePen.
Стилизация чекбоксов
Чекбоксы можно стилизовать под ваши нужды. Ниже приведен пример стилизации чекбоксов с помощью css, без использования js
See the Pen checkbox style by Токмаков Александр (@calliko) on CodePen.
Пример тугла (переключателя):
See the Pen toggle by Токмаков Александр (@calliko) on CodePen.
Данные переключатели советую использовать когда необходимо выполнить действие моментально. Например, включение темного режима сайта.
Советы по использованию чекбоксов
- Используйте стандартный вид чекбокса. Пользователи привыкли к квадратной форме чекбоксов и галочкам внутри них. Сделав их круглыми, вы можете запутать пользователей. Если использовать крестик, то тоже не понятно выбор сделан или наоборот — отмена.
- Располагайте чекбоксы правильно. Лучший вариант в столбик друг под другом. Иногда можно их ставить в ряд, но нижние чекбоксы должны быть строго друг под другом.
- Используйте понятные утвердительные подписи к чекбоксам. Избегайте отрицательных подписей, например, «Не присылать мне подписку».
- Не делайте размер чекбокса слишком маленьким или слишком большим.
А ещё у нас есть статья о стилизации select. Спасибо за внимание!
2 0 0 0 0 1Читайте также:
Приглашаем поучаствовать в обсуждении статьи:
HTML5 | Флажки и переключатели
Последнее обновление: 08.04.2016
Флажок
Флажок представляет элемент, который может находиться в двух состояниях: отмеченном и неотмеченном. Флажок создается с помощью элемента input
с атрибутом type=»checkbox»:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Чекбокс в HTML5</title> </head> <body> <h3>Изучаемые технологии</h3> <form> <p> <input type="checkbox" checked name="html5"/>HTML5 </p> <p> <input type="checkbox" name="dotnet"/>.NET </p> <p> <input type="checkbox" name="java"/>Java </p> <p> <button type="submit">Отправить</button> </p> </form> </body> </html>
Атрибут checked позволяет установить флажок в отмеченное состояние.
Переключатели
Переключатели или радиокнопки похожи на флажки, они также могут находиться в отмеченном или неотмеченном состоянии. Только для переключателей можно создать одну группу, в которой одновременно можно выбрать только один переключатель. Например:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Радиокнопки в HTML5</title> </head> <body> <form> <h3>Укажите пол</h3> <p> <input type="radio" value="man" checked name="gender"/>мужской </p> <p> <input type="radio" value="woman" name="gender"/>женский </p> <h3>Выберите технологию</h3> <p> <input type="radio" value="html5" checked name="tech"/>HTML5 </p> <p> <input type="radio" value="net" name="tech"/>. NET </p> <p> <input type="radio" value="java" name="tech"/>Java </p> <p> <button type="submit">Отправить</button> </p> </form> </body> </html>
Для создания радиокнопки надо указать атрибут type="radio"
. И теперь другой атрибут name
указывает не на имя элемента, а на имя
группы, к которой принадлежит элемент-радиокнопка. В данном случае у нас две группы радиокнопок:
и tech
. Из каждой группы
мы можем выбрать только один переключатель. Опять же чтобы отметить радиокнопку, у нее устанавливается атрибут checked
:
Важное значение играет атрибут value
, который при отправке формы позволяет серверу определить, какой именно переключатель был отмечен:
НазадСодержаниеВперед
Стилизация флажка только с помощью CSS
Это кажется очевидным утверждением; стиль должен быть сделан с помощью CSS. Но, к сожалению, в случае с флажками, поддержка прямого стиля флажка практически отсутствует.
Из-за этого я видел несколько реализаций JavaScript, которые переключались между отображением флажка без флажка и флажком в зависимости от состояния, чтобы имитировать стилизованный флажок.
Но давайте не будем так быстро переходить к JS, чтобы решить фундаментальную проблему со стилем! Это можно сделать только с помощью CSS, нам просто нужно немного изменить наше мышление.
- Стиль флажка
- Стиль этикетки
- Не требует дополнительных узлов или конфигурации DOM (включая значки/изображения)
- Требовать 0 JavaScript
Поскольку мы не можем напрямую стилизовать ввод флажка с помощью чего-то вроде checkbox-style: awesome;
, нам нужно использовать другой подход:
- Скрыть фактический ввод флажка
- Показать стилизованный элемент, который выглядит как пустой флажок, когда вход не отмечен
- Показывать стилизованный элемент, который выглядит как отмеченный флажок, когда ввод проверяется
Используемые селекторы CSS
Селектор типа
тип
— выбирает все элементы данноготипа
(например,input
выберет все
узлы) 9 0003 .. />Селектор атрибутов
[attribute="value"]
— выбирает элемент с атрибутомзначению
Псевдо-класс
: проверено
— выбирает флажки/типы радиовхода илиопцию
s ввыберите
, которые выбраны/проверены/включены/активныПсевдо-элемент
::before
— стильный элемент, который на самом деле не существует в DOM; считается первым потомком выбранного элементаУниверсальный селектор
*
— выбирает что угодно/всеДетский комбинатор
>
— объединяет два селектора; сужение выбора в правой части только до тех элементов, которые являются прямыми потомками элементов, выбранных в левой части.Соседний одноуровневый комбинатор
+
— объединяет два селектора; сужение выбора с правой стороны только до тех элементов, которые являются одноуровневыми сразу после элементов с левой стороны
Используемые важные стили CSS
content
— используется в псевдо-элементе::before
для установки его содержимогоdisplay
— в частностиnone
для скрытия элементов иinline-block
чтобы наш встроенный флажок мог иметь постоянную ширину и высотуширина
/высота
— делает то, что вы думаете: устанавливает ширину и высоту элементаcolor
— устанавливает цвет текставыравнивание по тексту
/выравнивание по вертикали
— используется для настройки положения нашего флажка/флажка по его меткеграница
фон
— задает цвет фона (используется для заливки чекбокса, когда он установлен)
Начнем с HTML
Давайте настроим наш флажок как дочерний элемент его метки 9Элемент 0022 с дочерним элементом диапазона
текста метки:
Эта структура позволяет щелкнуть текст метки ( Я - флажок
), чтобы переключить флажок без необходимости использования для
или уникальных атрибутов id
. Размещение текста в диапазоне
непосредственно после ввода
позволит нам выбрать его в CSS.
Первый шаг: скрыть неизменяемый флажок
Возвращаясь к нашей стратегии: поскольку мы ничего не можем сделать с нативным флажком, нам придется скрыть его и заняться своими делами.
метка > input[type="checkbox"] { дисплей: нет; }
Мы установим флажок ( input[type="checkbox"]
) и убедимся, что он помечен так, как нам нужно ( label >
). Затем просто display: none
, чтобы убрать это с наших экранов.
Второй шаг: создаем собственный флажок
Сделать пустой квадрат с помощью CSS легко: просто поместите рамку вокруг элемента без содержимого и задайте его ширину и высоту. Давайте также поместим его в псевдо-элемент ::before
, чтобы избежать добавления ненужного HTML.
метка > input[type="checkbox"] + *::before { содержание: ""; отображение: встроенный блок; вертикальное выравнивание: снизу; ширина: 1рем; высота: 1бэр; радиус границы: 10%; стиль границы: сплошной; ширина границы: 0,1 бэр; цвет границы: серый; }
Здание из выбора в предыдущем разделе; мы добавляем + *
, чтобы выбрать любой элемент, если он является прямым последующим братом интересующего флажка, а затем
, чтобы выбрать указанный псевдоэлемент для создания поля.
Последний шаг: измените наш флажок, если он отмечен
До сих пор, хотя флажок работал, он не выглядит как работающий. Давайте изменим это, установив флажок, когда он равен :checked
. Кроме того, для проверки концепции давайте изменим стили в самом тексте метки (хотя я изменю только цвет текста, вы можете представить себе изменение любого стиля для создания любого вида интерфейса выбора/снятия флажка).
метка > input[type="checkbox"]:checked + *::before { содержание: "✓"; белый цвет; выравнивание текста: по центру; фон: бирюзовый; цвет границы: бирюзовый; } метка> ввод [тип = "флажок"]: отмечен + * { цвет: бирюзовый; }
Важной частью здесь является то, что :checked
помещается после input[type="checkbox"]
(поскольку это элемент, который проверяется или нет). И, к счастью для нас, есть символ галочки, который мы можем установить в качестве содержимого нашего флажка: ✓
.
Бонусные баллы: распространите это на радиокнопки
В качестве испытания для вас, читатель, та же самая стратегия применима к созданию стилизованных радиокнопок. Используя это в качестве руководства, вы можете преобразовать это для ввода type="radio"
? (или просто следуйте за мной, так как это будет следующая часть этой серии)
Спасибо за чтение! Мне нравится делиться и находить такие вещи, где общие шаблоны веб-дизайна могут быть реализованы без массивной библиотеки JavaScript или фреймворка, увязающих на странице. Дайте мне несколько предложений ниже по шаблонам, которые вы хотели бы увидеть в разбивке только на CSS/HTML для этой серии.
Хотя в этом примере "нет ненужного DOM"; также вполне допустимо включить дополнительный диапазон
(или два) для хранения потрясающих значков svg/font для более точного/экзотического дизайна флажков. Затем :checked
следует использовать для альтернативы display: none
и display: inline-block
значки и +
должны стать ~
, чтобы выбрать всех братьев и сестер.
Стиль флажка CSS | Как работает стиль флажка CSS? Примеры
При разработке страниц в HTML может потребоваться изменить стиль всех или некоторых элементов, таких как флажок, переключатель и т. д. страницы. Стиль флажка CSS — это стиль, который применяется в вашем компоненте флажка HTML-кода путем настройки различных значений свойств для достижения богатого современного вида вашего HTML-дизайна пользовательского интерфейса, который может быть более привлекательным для конечных пользователей, что в конечном итоге увеличивает вовлеченность вашей веб-страницы. .
Синтаксис:
Не существует определенного синтаксиса для стиля флажка CSS, поскольку это общие параметры CSS, которые необходимо изменить в соответствии с вашими требованиями. Вы можете использовать кодирование CSS внутри тега