我创建了一个自定义复选框,一切正常。我想知道是否有样式\操纵content
orbackground
属性的选项。我使用了自定义刻度线符号,但它在底部的位置过多,如何将其提高几个像素?
所需结果:
HTML:
<input type='checkbox' value='valuable4' id="valuable4"/>
<label for="valuable4">
<span></span>
</label>
CSS:
input[type=checkbox] {
visibility: hidden;
}
label span
{
height: 25px;
width: 25px;
position: absolute;
left: 107px;
cursor: pointer;
border: 1px solid lightblue;
}
input[type=checkbox]:checked + label span
{
content: url("https://cdn2.iconfinder.com/data/icons/basicset/tick_64.png") no-repeat;
height: 25px;
width: 25px;
cursor: pointer;
border: 1px solid red;
}
现在,这应该正是您要寻找的。您可以安全地省略<span>
,它是不需要的。
input[type=checkbox] {
display: none;
}
label {
height: 25px;
width: 25px;
position: absolute;
display: block;
left: 107px;
cursor: pointer;
border: 1px solid lightblue;
}
input[type=checkbox]:checked + label {
border: 1px solid red;
}
input[type=checkbox] + label:after {
background: url("https://cdn2.iconfinder.com/data/icons/basicset/tick_64.png") no-repeat;
background-size: cover;
content:" ";
display: block;
opacity: 0;
height: 30px;
transition-duration: 0.2s;
width: 30px;
position: relative;
right: -4px;
top: -8px;
}
input[type=checkbox]:checked + label:after {
opacity: 1;
}
http://jsfiddle.net/39qkjs6k/5/
这里发生了什么事?基本上,您将创建一个伪元素(大多数html元素上都可用):after
,并将其应用于background
(替换<span>
之前使用的)。您将其相对放置在其父对象内部<label>
right: -4px; top: -8px;
。取消选中该复选框时,它具有opacity: 0;
,因此它是完全透明的,使其不可见。在:checked
复选框旁边,它变为opacity: 1;
,使其完全可见。这样transition-duration: 0.2s;
可以确保所有可转换属性的更改均以平滑的动画进行,而不仅仅是突然更改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句