Для зміни стилю прапорців та перемикачів ми взагалі ховаємо вихідний елемент <input> за допомогою значення none у властивості display, а потрібний стиль застосовуємо до елемента <label>, пов'язаного з цим < ;input>. У прикладі 1 прапорець зроблений як кольоровий прямокутник, усередині якого переміщується білий квадратик (рис. 1). Увімкнений прапорець виглядає як прямокутник синього кольору із квадратиком ліворуч; вимкнений прапорець виглядає як прямокутник сірого кольору з квадратиком праворуч.

Мал. 1. Вигляд прапорця
Щоб квадратик плавно переміщався з одного положення до іншого, додана властивість transition, значенням якого виступає час руху, в даному випадку півсекунди .
Приклад 1. Стилізація прапорця
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Прапорець</title> <style> .switch input { display: none; /* Ховаємо вихідний прапорець */
}
.switch label { display: inline-block; /* Рядково-блоковий елемент */
position: relative; /* Відносне позиціонування */
width: 60px; height: 30px; /* Розміри прямокутника */
background: #9E9E9E; /* Сірий колір фону */
transition: 0.5s; /* Час зміни кольору фону */
}
.switch label::before { content: ''; position: absolute; /* Абсолютне позиціонування */
background: #fff; /* Колір фону квадратика */
width: 20px; height: 20px; /* Розміри квадратика */
left: 35px; top: 5px; /* Положення квадратика */
transition: 0.5s; /* Час руху квадратика */
}
.switch input:checked + label { background: #1976D2; /* Синій колір фону */
}
.switch input:checked + label::before { left: 5px; /* Квадратик зліва */
}
</style>
</head>
<body> <div class="switch"> <input type="checkbox" id="switch"> <label for="switch"></label>
</div>
</body>
</html>Сам квадратик виводиться за допомогою псевдоелемента ::before, який додається до селектора label. Це дозволяє легко стилізувати елемент, наприклад, зробити його круглим, додавши лише властивість border-radius.
Див. також
- <input>
- <label>
- Акордеон меню
- Вкладки на CSS
- Випадаюче меню
- Вирівнювання елементів форм
- Завантаження файлів
- Використання :checked
- Кнопки
- Кнопки
- Надсилання даних форми
- Перемикачі
- Перемикачі
- Підказка у полі форми
- Поле для введення пароля
- Поле для пароля
- Користувацькі форми
- Побудова форм
- Псевдоклас :checked
- Приховане поле
- Спойлер
- Стилізація перемикачів
- Божевільні форми
- Текстове поле
- Текстове поле
- Прапорці
- Прапорці
- Форми в Bootstrap 4
- Форми в HTML
- Елемент label
