【发布时间】:2018-11-21 09:57:56
【问题描述】:
我正在使用 HTML 和 CSS 创建一个项目,并且我希望有可以使用复选框输入来选择的选项。但是,我想更改样式,以便隐藏实际的框,并且可以点击标签文本来指示选择。我可以通过将其不透明度降低为零来隐藏该框,但我正在努力将不可见的框移动到文本顶部,以便看起来文本正在被点击而不是框。这最终将成为 iOS 应用程序的一部分。
这是我所拥有的:Current view with visible boxes 和 Current view with hidden boxes
隐藏框的外观是我想要的,但要更改背景颜色,用户必须点击文本左侧(不可见框所在的位置)。
这是 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;
}
我尝试过使用绝对定位,但由于某种原因,它导致所有输入只有一个框,而不是每个输入一个框。我还尝试将输入标签放在标签标签中,但从那里从那时起,我无法在检查框时更改背景颜色。
【问题讨论】: