Отладка тумблера css?

ребята, я сейчас изо всех сил пытаюсь понять код переключателя, я нашел это в Google, и я пытаюсь понять код, чтобы улучшить свои навыки css пожалуйста, помогите мне и заранее спасибо.

1. зачем этот человек поместил объявление перехода, если тумблер может работать без него?

2. почему мы должны использовать соседний комбинатор, а не какой-либо другой комбинатор? Я попробовал комбинатор потомков, и он не работает, я хочу знать, почему?

это HTML-код:

<!DOCTYPE html>
<html lang = "en" dir = "ltr">
  <head>
    <meta charset = "utf-8">
    <link rel = "stylesheet" href = "test.css">
    <title></title>
  </head>
  <body>
    <label class = "switch">
  <input type = "checkbox" class = "input">
  <span class = "slider"></span>
</label>
  </body>
</html>

и это CSS:

    .switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switch .input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
 -webkit-transition: .4s; 
  transition: .4s;*/
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
   **i understand that here it's necessary for the cool effect of the transition but above i don't see why we used it?** 

-webkit-transition: .4s; 
      transition: .4s;
    }
.input:checked + .slider {

  background-color: #2196F3;
}

.input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}

.input:checked + .slider:before {
  transform: translateX(26px);
}

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

Kev 18.12.2018 18:04

Если бы переключатель был сделан потомком ввода, html не был бы действителен. Возможно, поэтому дизайнер структурировал его именно так.

Kev 18.12.2018 18:12
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
2
68
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

1. Переход на тумблер Это полностью зависит от человека, разрабатывающего сайт. Если код работает нормально и без него, вы можете удалить его, если вам не нравится такой внешний вид.

2. Почему соседний? В этом случае использование соседнего комбинатора гарантирует, что только тот .input, который принадлежит .switch, будет затронут какими бы то ни было стилями. Это будет сделано в случае, если класс .input будет вызываться много раз на странице. Все остальные его экземпляры сохранят стили по умолчанию для этого класса, в то время как экземпляр в классе .switch будет иметь уникальные стили.

1. Объявление transition для .slider используется для перехода его свойства background-color, это тонкий эффект, который вы, возможно, не заметили.

2. Комбинатор потомков действительно не может работать в этом случае, поскольку диапазон .slider не является потомком флажка, а примыкает к нему. Другой селектор, который вы могли бы использовать в этом случае вместо этого, - это селектор ~ с аналогичным результатом.

Другие вопросы по теме