Створення круглих, плоских, а також перемикачів, що перевертаються на CSS

Часто нам необхідно, щоб користувач поставив/зняв прапорець, що означало б відповідь так/ні на якесь запитання чи твердження. Ми вставляємо лейбл, поле введення прапорця і вибираємо значення значення після відправки форми, щоб побачити чи поставив користувач прапорець. Всі ми знаємо, як виглядають стилі прапорців за замовчуванням і немає рішень для стилізації прапорців на чистому CSS. Цей елемент, чиї стилі окремо управляються браузером. Хіба не було б добре мати лощений інтерфейс, такий, як ми іноді бачимо в мобільних додатках?

Зачекайте! Небагато прийомів CSS і рішення для нас готове: додаючи псевдокласи :checked,:before, і :after до наших прапорців, ми можемо досягти гарних перемикачів з плавними ефектами переходів. Ніякої чорної магії… тільки краса чистого CSS. Давайте приступимо.

створення

Практичний курс з верстки адаптивного сайту з нуля!

Вивчіть курс і дізнайтеся, як верстати сучасні сайти на HTML5 та CSS3

Закладаємо основу

У HTML немає нічого нового. Стандартний прапорець із відповідним лейблом. Кожна з цих комбаніцій лейбл/поле введення загорнута окремий div. Я поставив йому клас switch. Я збираюся продемонструвати 3 різні стилі:

Круглий перемикач (схожий на те, що використовується в iOS)

Круглий перемикач із плоским оформленням

Кожен стиль буде створено за допомогою класу, який задано кожному елементу Input. Лейбли стилізуватимуться за допомогою селектора input + label, таким чином їм не потрібен окремий клас. А тепер подивимося на HTML: