Css input checkbox: CSS checkbox input styling — Stack Overflow

Содержание

Использование и стилизация 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.

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

Советы по использованию чекбоксов

  1. Используйте стандартный вид чекбокса. Пользователи привыкли к квадратной форме чекбоксов и галочкам внутри них. Сделав их круглыми, вы можете запутать пользователей. Если использовать крестик, то тоже не понятно выбор сделан или наоборот — отмена.
  2. Располагайте чекбоксы правильно. Лучший вариант в столбик друг под другом. Иногда можно их ставить в ряд, но нижние чекбоксы должны быть строго друг под другом.
  3. Используйте понятные утвердительные подписи к чекбоксам. Избегайте отрицательных подписей, например, «Не присылать мне подписку».
  4. Не делайте размер чекбокса слишком маленьким или слишком большим.

А ещё у нас есть статья о стилизации 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 указывает не на имя элемента, а на имя группы, к которой принадлежит элемент-радиокнопка. В данном случае у нас две группы радиокнопок:

gender и tech. Из каждой группы мы можем выбрать только один переключатель. Опять же чтобы отметить радиокнопку, у нее устанавливается атрибут checked:

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

НазадСодержаниеВперед

Стилизация флажка только с помощью CSS

Это кажется очевидным утверждением; стиль должен быть сделан с помощью CSS. Но, к сожалению, в случае с флажками, поддержка прямого стиля флажка практически отсутствует.

Из-за этого я видел несколько реализаций JavaScript, которые переключались между отображением флажка без флажка и флажком в зависимости от состояния, чтобы имитировать стилизованный флажок.

Но давайте не будем так быстро переходить к JS, чтобы решить фундаментальную проблему со стилем! Это можно сделать только с помощью CSS, нам просто нужно немного изменить наше мышление.

  1. Стиль флажка
  2. Стиль этикетки
  3. Не требует дополнительных узлов или конфигурации DOM (включая значки/изображения)
  4. Требовать 0 JavaScript

Поскольку мы не можем напрямую стилизовать ввод флажка с помощью чего-то вроде checkbox-style: awesome; , нам нужно использовать другой подход:

  1. Скрыть фактический ввод флажка
  2. Показать стилизованный элемент, который выглядит как пустой флажок, когда вход не отмечен
  3. Показывать стилизованный элемент, который выглядит как отмеченный флажок, когда ввод проверяется

Используемые селекторы CSS

  1. Селектор типа тип — выбирает все элементы данного типа (например, input выберет все

    .. /> узлы) 9 0003
  2. Селектор атрибутов [attribute="value"] — выбирает элемент с атрибутом , где его значение точно равно значению

  3. Псевдо-класс : проверено — выбирает флажки/типы радиовхода или опцию s в выберите , которые выбраны/проверены/включены/активны

  4. Псевдо-элемент ::before — стильный элемент, который на самом деле не существует в DOM; считается первым потомком выбранного элемента

  5. Универсальный селектор * — выбирает что угодно/все

  6. Детский комбинатор > — объединяет два селектора; сужение выбора в правой части только до тех элементов, которые являются прямыми потомками элементов, выбранных в левой части.

  7. Соседний одноуровневый комбинатор + — объединяет два селектора; сужение выбора с правой стороны только до тех элементов, которые являются одноуровневыми сразу после элементов с левой стороны

Используемые важные стили CSS

  1. content — используется в псевдо-элементе ::before для установки его содержимого

  2. display — в частности none для скрытия элементов и inline-block чтобы наш встроенный флажок мог иметь постоянную ширину и высоту

  3. ширина / высота — делает то, что вы думаете: устанавливает ширину и высоту элемента

  4. color — устанавливает цвет текста

  5. выравнивание по тексту / выравнивание по вертикали — используется для настройки положения нашего флажка/флажка по его метке

  6. граница

    стили — Как мы будем формировать и раскрашивать флажок

  7. фон — задает цвет фона (используется для заливки чекбокса, когда он установлен)

Начнем с 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 бэр;
  цвет границы: серый;
}
 

Здание из выбора в предыдущем разделе; мы добавляем + * , чтобы выбрать любой элемент, если он является прямым последующим братом интересующего флажка, а затем

::before , чтобы выбрать указанный псевдоэлемент для создания поля.

Последний шаг: измените наш флажок, если он отмечен

До сих пор, хотя флажок работал, он не выглядит как работающий. Давайте изменим это, установив флажок, когда он равен :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 внутри тега