仅使用css设置复选框样式

时间:2015-12-08 10:16:56

标签: html5 css3 checkbox hover

仅使用css设置复选框样式。复选框定义使用速记定义而不是span和label来定义文本。



input[type="checkbox"] + label span {
    display:inline-block;
    width:19px;
    height:19px;
    margin:-1px 4px 0 0;
    vertical-align:middle;
    cursor:pointer;
}

Hello world!<input name="status" id="status" type="checkbox" />
&#13;
&#13;
&#13;

当用户将鼠标悬停在复选框上时,我希望看到蓝色边框。 我的问题的不同之处在于它使用了简写符号。没有明确的标签或span元素可以操作以获得特定效果。

1 个答案:

答案 0 :(得分:0)

在设置复选框本身的样式时,您可以使用以下CSS(对于Firefox和Safari / Chrome)取消设置标准输入元素外观,然后自己设计它们(比较http://www.w3schools.com/cssref/css3_pr_appearance.asp):

input[type="checkbox"] {    
-moz-appearance:none; /* Firefox */
-webkit-appearance:none; /* Safari and Chrome */
... [your definitions]
}

如@sodawillow指出的那样,没有包装元素的复选框及其旁边的文本的样式将无法工作。 您可以使用jQuery围绕每个复选框及其前面的文本生成包装元素:

$('input[type="checkbox"]').each(function{
 $(this, this.prev()).wrapAll('<li class="checkbox_wrapper"></li>');
});
$('li.checkbox_wrapper').wrapAll('<ul></ul>');

然后你可以使用checkbox_wrapper类来设计整个事物。