如何设置禁用复选框的样式?

时间:2010-11-24 20:54:22

标签: html css

你知道如何禁用复选框吗?

E.g:

<input type="checkbox" value="All Terrain Vehicle"
       name="exfilter_All Terrain Vehicle"
       id="exfilter_All_Terrain_Vehicle"
       class="exfilter" disabled="">

10 个答案:

答案 0 :(得分:35)

使用css中的属性选择器

input[disabled]{
  outline:1px solid red; // or whatever
}

仅供复选框使用

input[type=checkbox][disabled]{
  outline:1px solid red; // or whatever
}

示例http://www.jsfiddle.net/gaby/pxKcR/2/

答案 1 :(得分:9)

您无法直接设置已禁用的复选框,因为它受浏览器/操作系统的控制。

但是,您可以聪明,并使用标签来替换复选框,该标签使用纯CSS模拟复选框。您需要有一个相邻的标签,您可以使用该标签来设置一个新的&#34;伪复选框&#34;。基本上你完全重绘了它,但它可以让你完全控制它在任何状态下的外观。

我已经抛出了一个基本示例,以便您可以看到它的实际效果:http://jsfiddle.net/JohnSReid/pr9Lx5th/3/

以下是样本:

&#13;
&#13;
input[type="checkbox"] {
    display: none;
}

label:before {
    background: linear-gradient(to bottom, #fff 0px, #e6e6e6 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
    border: 1px solid #035f8f;
    height: 36px;
    width: 36px;
    display: block;
    cursor: pointer;
}
input[type="checkbox"] + label:before {
    content: '';
    background: linear-gradient(to bottom, #e6e6e6 0px, #fff 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
    border-color: #3d9000;
    color: #96be0a;
    font-size: 38px;
    line-height: 35px;
    text-align: center;
}

input[type="checkbox"]:disabled + label:before {
    border-color: #eee;
    color: #ccc;
    background: linear-gradient(to top, #e6e6e6 0px, #fff 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
}

input[type="checkbox"]:checked + label:before {
    content: '✓';
}
&#13;
<div><input id="cb1" type="checkbox" disabled checked /><label for="cb1"></label></div>
<div><input id="cb2" type="checkbox" disabled /><label for="cb2"></label></div>
<div><input id="cb3" type="checkbox" checked /><label for="cb3"></label></div>
<div><input id="cb4" type="checkbox" /><label for="cb4"></label></div>
&#13;
&#13;
&#13;

根据您的浏览器兼容性和可访问性级别,需要进行一些额外的调整。

答案 2 :(得分:8)

使用:disabled CSS3 pseudo-selector

答案 3 :(得分:6)

您可以使用css选择它:

input[disabled] { /* css attributes */ }

答案 4 :(得分:2)

使用CSS的:disabled选择器(对于CSS3):

checkbox-style { }
checkbox-style:disabled { }

或者您需要使用javascript根据启用/禁用它时更改样式(假设根据您的问题启用/禁用它)。

答案 5 :(得分:2)

复选框(单选按钮和<select>)是操作系统级别的组件,而不是浏览器级别的组件。您无法以跨浏览器和操作系统一致的方式可靠地设置它们的样式。

你最好把它叠加在上面并改为风格。

答案 6 :(得分:0)

这也得到了IE的支持:

HTML

class="disabled"

CSS

.disabled{
...
}

答案 7 :(得分:0)

input[type='checkbox'][disabled][checked] {
width:0px; height:0px;
}
input[type='checkbox'][disabled][checked]:after {
 content:'\e013'; position:absolute; 
 margin-top:-10px;
 opacity: 1 !important;
 margin-left:-5px;
 font-family: 'Glyphicons Halflings';
 font-style: normal;
 font-weight: normal;
}

答案 8 :(得分:0)

如果您试图阻止某人更新复选框,使其显示为禁用状态,则只需使用JQuery

$('input [type = checkbox]')。click(false);

然后可以设置复选框的样式。

答案 9 :(得分:0)

如果您真的想为复选框添加一些颜色,请尝试此解决方法

input[type=checkbox][disabled] {
  outline: 5px solid red;
  outline-offset: -20px;
}