以下是一个简单的示例,演示了如何使用CSS创建一个动态的勾选多选框效果。
HTML:
<label class="checkbox">
<input type="checkbox" />
<span class="checkmark"></span>
Option 1
</label>
CSS:
/* 多选框容器样式 */
.checkbox {
display: inline-block;
cursor: pointer;
user-select: none;
}
/* 实际的多选框样式 */
.checkbox input {
position: absolute;
opacity: 0;
cursor: pointer;
height: 0;
width: 0;
}
/* 勾选/选中标记样式 */
.checkmark {
position: absolute;
top: 0;
left: 0;
height: 20px;
width: 20px;
background-color: #eee;
border-radius: 50%;
transition: background-color 0.3s;
}
/* 当多选框被选中时的标记样式 */
.checkbox input:checked + .checkmark {
background-color: #2196F3;
}
/* 位于勾选标记内的文本样式 */
.checkbox span.checkmark::after {
content: "";
position: absolute;
display: none;
}
/* 当多选框被选中时显示勾选标记内的对勾 */
.checkbox input:checked + .checkmark::after {
display: block;
content: "✔";
color: white;
font-size: 16px;
font-weight: bold;
line-height: 20px;
text-align: center;
}
这个示例中,我们创建了一个带有隐藏多选框的标签,并在其上方覆盖了一个圆形的标记。当多选框被选中时,圆形背景色改变,并在其中显示一个对勾符号。CSS中使用了+
兄弟选择器来选择紧跟在多选框后面的勾选标记,并在其中添加了文本内容。这个简单的例子演示了如何使用CSS创建交互式UI元素,并且不需要JavaScript。