CSS и вёрстка

Как стилизовать checkbox CSS

📅 ⏱ 21:30 ⏳ 1 мин 💬 0

Как стилизовать checkbox css: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем те

Коротко: чекбокс стилизуют свойством appearance: none, убирая системный вид, и задают свой: рамку, фон и галочку через ::before и :checked. Быстрый способ — accent-color, он меняет цвет стандартного чекбокса.

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

Способы стилизации

Способ Результат
accent-color меняет цвет стандартного
appearance: none полная стилизация
Скрытый input + label кастомный вид любой формы

Быстрый способ

CSS
input[type="checkbox"] {
  accent-color: #003F8F;
  width: 20px;
  height: 20px;
}

Одной строкой меняется цвет галочки — без сложной вёрстки. Этого достаточно в большинстве случаев.

Вкладки: полная стилизация



CSS
input[type="checkbox"] {
  appearance: none;
  width: 20px;
  height: 20px;
  border: 2px solid #ccc;
  border-radius: 4px;
}

appearance: none убирает системный вид, дальше рисуем свой квадрат с рамкой и скруглением.

CSS
input[type="checkbox"]:checked {
  background: #003F8F;
  border-color: #003F8F;
}
input[type="checkbox"]:checked::before {
  content: "✔";
  color: #fff;
}

:checked реагирует на установленную галочку. Так меняют фон и добавляют свою отметку.

CSS
input[type="checkbox"]:focus-visible {
  outline: 2px solid #003F8F;
  outline-offset: 2px;
}

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

ДоступностьНе делайте чекбокс «невидимым» без причины: он должен оставаться доступным с клавиатуры. Если скрываете сам input, используйте label, связанный с ним, и оставляйте видимый фокус.

Практика: стилизовать чекбокс

  1. Решите, хватит ли accent-color.
  2. Для своей формы задайте appearance: none.
  3. Опишите рамку, фон и скругление.
  4. Добавьте вид для :checked.
  5. Оставьте видимый :focus-visible.
  6. Проверьте работу с клавиатуры и на мобильном.

Частые ошибки: причина → решение

Симптом Причина Решение
Старый вид нет appearance: none добавить свойство
Галочка не видна не задан content добавить в ::before
Не работает с клавиатуры скрыт input без label связать с label
Размер «прыгает» нет фиксированных размеров задать width/height
Не видно фокус убран outline вернуть видимый фокус

Проверьте себя

Чек-лист




Что убирает системный вид чекбокса?




Какое простое свойство меняет цвет галочки?




Вопросы и ответы

Нет. Часто достаточно accent-color — он подкрашивает стандартный чекбокс и сохраняет привычное поведение. Полная стилизация нужна, если дизайн требует особой формы.

Задайте width и height, например 20–24px. При кастомной стилизации размеры обязательны, иначе отметка будет выглядеть криво.

Если вы скрыли input через display: none, он перестаёт обрабатывать клики. Свяжите его с label через for и id — клик по подписи будет работать.

Он показывает рамку только при навигации с клавиатуры, а не при клике мышью. Так фокус видят те, кому он нужен, и не мешает остальным.

Итоги

  • Цвет стандартного чекбокса меняет accent-color.
  • Полная стилизация начинается с appearance: none.
  • Вид отмечаемого задаёт :checked.
  • Видимый фокус — обязательное условие доступности.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость