我只需要使用html和CSS创建一个自定义复选框.到目前为止,我有:
HTML/CSS:
.checkbox-custom {
opacity: 0;
position: absolute;
}
.checkbox-custom,
.checkbox-custom-label {
display: inline-block;
vertical-align: middle;
margin: 5px;
cursor: pointer;
}
.checkbox-custom + .checkbox-custom-label:before {
content: '';
background: #fff;
border-radius: 5px;
border: 2px solid #ddd;
display: inline-block;
vertical-align: middle;
width: 10px;
height: 10px;
padding: 2px;
margin-right: 10px;
text-align: center;
}
.checkbox-custom:checked + .checkbox-custom-label:before {
content: "";
display: inline-block;
width: 1px;
height: 5px;
border: solid blue;
border-width: 0 3px 3px 0;
transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
border-radius: 0px;
margin: 0px 15px 5px 5px;
}
该checked
复选框应该是一个复选标记,其周围有正方形,而不仅仅是一个复选标记.在搜索答案时,我只发现了使用UTF-8字符或图像显示复选标记的情况.我无法将这些中的任何一个用于我想要完成的任务.我只能使用纯CSS和HTML.有什么建议?
codepen:http://codepen.io/alisontague/pen/EPXagW?edit = 110
问题是您使用相同的伪元素作为方形边框和复选标记.简单的解决方案是继续使用:before
边界的伪元素,然后使用:after
伪元素作为复选标记.
更新的示例
您必须相对于父标签元素绝对定位:after
伪元素..checkbox-custom
这是更新的代码:
.checkbox-custom {
display: none;
}
.checkbox-custom-label {
display: inline-block;
position: relative;
vertical-align: middle;
margin: 5px;
cursor: pointer;
}
.checkbox-custom + .checkbox-custom-label:before {
content: '';
background: #fff;
border-radius: 5px;
border: 2px solid #ddd;
display: inline-block;
vertical-align: middle;
width: 10px; height: 10px;
padding: 2px; margin-right: 10px;
}
.checkbox-custom:checked + .checkbox-custom-label:after {
content: "";
padding: 2px;
position: absolute;
width: 1px;
height: 5px;
border: solid blue;
border-width: 0 3px 3px 0;
transform: rotate(45deg);
top: 2px; left: 5px;
}
Checkboxes