Я создаю проект с использованием HTML и CSS, и я хочу иметь параметры, которые можно выбрать с помощью флажка ввода.Тем не менее, я хочу изменить стиль, чтобы фактическое поле было скрыто, а текст метки можно было нажать, чтобы указать выбор.Я могу скрыть поле, опустив его непрозрачность до нуля, но я изо всех сил стараюсь переместить невидимое поле поверх текста так, чтобы казалось, что текст касается постукивания, а не окна.В конечном итоге это будет частью приложения для iOS.
Вот что у меня есть: Текущий вид с видимыми полями и Текущий вид со скрытыми полями
Мне нужен внешний вид скрытых прямоугольников, но для изменения цвета фона пользователь должен нажать слева от текста (где находится невидимое поле).
Вот HTML-код:
<div class="full-input preferences">
<input type="checkbox" name="sports" value="Sports" class="preference"><label for="sports">Sports</label>
<input type="checkbox" name="pets" value="Pets" class="preference"><label for="pets">Pets</label>
<input type="checkbox" name="movies" value="Movies" class="preference"><label for="movies">Movies</label>
<input type="checkbox" name="food" value="Food" class="preference"><label for="food">Food</label>
</div>
И CSS:
.preferences {
display: flex;
flex-wrap: wrap;
flex: 2;
}
.preference {
margin: 0 .5em;
}
input[type=checkbox] {
opacity: 0;
}
input[type=checkbox] + label {
border: 1px solid #38A3B8;
padding: .3em;
border-radius: 5px;
min-width: 3em;
text-align: center;
z-index: 1;
}
input[type=checkbox]:checked + label {
background: #38A3B8;
color: white;
}
Я пытался использовать абсолютное позиционирование, но из-за этого для всех входов будет только один блок, а не один для каждого входапо какой-то причине.Я также попытался поместить тег ввода в тег label, но оттуда я не могу изменить цвет фона, когда флажок установлен.