Переключатель (его еще называют тумблер) помогает выбрать два состояния. Например, включение или отключение темной темы на сайте. Чисто функционально переключатель — это тот же самый чекбокс. Однако области применения у них отличаются.

Мы сделаем такой вот переключатель на чистом CSS:

Разметка переключателя

<!-- Переключатель прямоугольный -->
<div class="toggle">
  <input type="checkbox" class="checkbox" id="checkbox1" />
  <label for="checkbox1" class="switch"></label>
</div>
<!-- Переключатель загругленный -->
<div class="toggle round">
  <input type="checkbox" class="checkbox" id="checkbox2" />
  <label for="checkbox2" class="switch"></label>
</div>

В качестве основы для переключателя используем браузерный чекбокс (который потом скроем). Элемент switch является меткой, которая ссылается на чекбокс. При нажатии на метку меняется состояние чекбокса.

Стилизация переключателя

Комментарии даны в CSS-коде:

.toggle {
  position: relative;
  width: 60px; /* Ширина переключателя */
  height: 34px; /* Высота переключателя */
  display: inline-block;
  user-select: none; /* Запрещаем выделение */
}

.toggle > .checkbox {
  display: none; /* Скрываем браузерный чекбокс */
}

.toggle > .switch {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  transition: 0.2s; /* Для плавности */
  cursor: pointer;
  background-color: #99cdf9; /* Цвет в начальном состоянии */
}

.toggle > .switch:before {
  position: absolute;
  content: "";
  width: 24px; /* Ширина бегунка */
  height: 24px; /* Высота бегунка */
  left: 5px;
  bottom: 5px;
  background-color: #fff; /* Цвет бегунка */
  transition: 0.2s;
}

/* При состоянии checked - смещаем бегунок вправо */
.checkbox:checked + .switch:before {
  transform: translateX(26px);
}

/* При состоянии checked - меняем цвет фона */
.checkbox:checked + .switch {
  background-color: #0081f1;
}

/* Стили загругленного переключателя */
.toggle.round > .switch {
  border-radius: 34px;
}

/* Делаем бегунок круглым  */
.toggle.round > .switch:before {
  border-radius: 50%;
}

.toggle {
  margin-right: 10px;
}

 


Warning: Undefined variable $aff_bottom_mark in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 81

Warning: Undefined variable $aff_bottom_info in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 85