Оформить checkbox или radio button на CSS

Решение, как сделать оригинальное оформление checkbox без применения JavaScrpt, используя только CSS

Демонстрация

HTML

<label class="wds_chkbox_container">Click me
  <input type="checkbox">
  <span class="wds_chkbox_checkmark"></span>
</label>

CSS

/* label контейнер */
.wds_chkbox_container {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 22px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
/* Скрываем штатный checkbox */
.wds_chkbox_container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}
/* Создаём свой checkbox */
.wds_chkbox_checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  border:2px solid #ccc;
}
/* При наведении мышкой, добавим background */
.wds_chkbox_container:hover input ~ .wds_chkbox_checkmark {
  background-color: #ccc;
}
/* Когда checkbox отмечен, добавим синий background */
.wds_chkbox_container input:checked ~ .wds_chkbox_checkmark {
  background-color: #2196F3;
  border:2px solid #2196F3;
}
/* Создадим индикатор, который скрыт, если не отмечен */
.wds_chkbox_checkmark:after {
  content: "";
  position: absolute;
  display: none;
}
/* Покажем индикатор, когда отмечен */
.wds_chkbox_container input:checked ~ .wds_chkbox_checkmark:after {
  display: block;
}
/* Оформление индикатора */
.wds_chkbox_container .wds_chkbox_checkmark:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
Продолжая использовать веб- сайт beta-code.ru, вы даете согласие на обработку файлов cookie, пользовательских данных (сведения о местоположении; тип и версия ОС; тип и версия Браузера; тип устройства и разрешение его экрана; источник откуда пришел на сайт пользователь; с какого сайта или по какой рекламе; язык ОС и Браузера; какие страницы открывает и на какие кнопки нажимает пользователь; ip-адрес) в целях функционирования сайта, проведения ретаргетинга и проведения статистических исследований и обзоров. Если вы не хотите, чтобы указанные данные обрабатывались, покиньте сайт.
Принять