复选框的自定义图片?

时间:2011-12-29 11:53:42

标签: html css checkbox custom-controls

我想将复选框显示为切换按钮。但是我无法使用CCS将自定义图片应用到它 - 仍然绘制了复选框。如何完成这项任务?

我的CSS:

input[type=checkbox]#settingsbutton {
    border-style: none;
    background-color: transparent;
    width: 42px;
    height: 40px;
    display: block;
}

input[type=checkbox].button-settings {
    background-image: url("images/button-settings-normal.png");
}

input[type=checkbox].button-settings:active {
    background-image: url("images/button-settings-normal.png");
}

input[type=checkbox].button-settings:hover {
    background-image: url("images/button-settings-hover.png");
}

input[type=checkbox].button-settings:active {
    background-image: url("images/button-settings-pressed.png");
}

我的HTML:

 <body>

<input type="checkbox" id="settingsbutton" class="button-settings"/>

 </body>

3 个答案:

答案 0 :(得分:15)

如果您希望使用纯css解决方案,那么您必须在标记中添加label。这是trick&amp;写这个:

input[type=checkbox]{
    display:none;
}
input[type=checkbox] + label{
    height: 40px;
        width: 42px;
} 
body:not(#foo) input[type=checkbox]:checked + label{
    background-image: url("images/button-settings-normal.png");
} 

body:not(#foo) input[type=checkbox] + label{
    background-position:0 -46px; /* as per your requirement*/
    height: 40px;
}

<强> HTML

<body>

<input type="checkbox" id="settingsbutton" class="button-settings"/>
<label for="settingsbutton"></label>

 </body>

阅读这些文章:

http://www.thecssninja.com/css/custom-inputs-using-css

http://www.wufoo.com/2011/06/13/custom-radio-buttons-and-checkboxes/

但它在IE8&amp;以下

答案 1 :(得分:2)

请参阅此链接以获取样式复选框:http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/

解决方案涉及隐藏复选框并添加样式元素来代替它,这模拟了复选框的行为。

答案 2 :(得分:0)

如果标签中有一些文字

,请尝试使用此解决方案
input[type=checkbox]{
    display:none;
}
input[type=checkbox] + label:before{
    height: 42px;
    width: 42px;
    content: url("../img/chk.jpg");
} 
body input[type=checkbox]:checked + label:before{
    content: url("../img/chk_checked.jpg");
}