2009-07-30 17 views
6

我想改变网格中禁用的复选框的CSS(他们太难以查看用户)。什么是简单的方法来做到这一点?如何为禁用的复选框设置CSS?

我在使用的技术(按降序排列)的偏好:
CSS
的JavaScript
jQuery的
其他

+0

请更多的描述,你需要JavaScript的解决方案的演示? – dusoft 2009-07-30 14:28:49

回答

8

我建议改变背景的颜色(background-color的形式/ fieldset),看看你能否想出一个更好的对比。如果你只是想改变残疾(?非选择)复选框的颜色,你可以尝试:

input[disabled] { 
... 
/* CSS here */ 
... 
} 

但如果他们是残疾人的一个原因,当然,他们并不需要是显着的可视?他们灰色化的目的当然是为了避免主动/启用和不活动/禁用表单元素之间的混淆?

+0

因为我们的用户群正在使用IE,所以我们无法在CSS中这样做。但是,我们在.NET中的复选框控件上以编程方式执行了此操作。 – 2009-12-04 22:01:57

+2

@Even Mien:如果你说过你是如何做到这一点的话,那就好了,也就是说你设置了什么属性。 – 2010-11-17 09:40:18

+0

@Christopher在ASP.Net代码的下面看到我的答案。 – David 2011-04-09 00:55:55

3

伊夫曾与几个JS库好运做的工作。当然,我的要求是使框与标准复选框看起来非常不同。以下库甚至可以兼容508。

Styled Form Controls

0

基本上,你需要在DIV,P,或用于网格中的任何其他元件连接onclick事件,然后将选中的值转移到与那场在网格有关的隐藏元素。这是非常微不足道的,如果使用javascript - 检查jquery添加onclick事件的任何元素。如果点击,则为隐藏元素设置值= 1。

2

input:disabled {}适用于除浏览器外的所有浏览器,IE浏览器。对于IE,我想你必须使用一些JS库。

4

保持该复选框处于启用状态,但将onfocus=this.blur()添加到复选框,以免它被点击。

或者如果使用ASP.net(如您在您的评论说)保持复选框设置为启用,并添加以下到Page.Load事件:

CheckBox1.Attributes.Add("onclick", "return false;"); 
0

如果你有一个混合形式启用和禁用复选框,禁用复选框淡出可避免用户混淆。如果打算显示带有复选框的仅供查看的页面(例如显示在购物收据上选择的产品选项),那么使用图像替换复选框输入元素可能会产生更好的结果。

更换

<input type="checkbox" disabled> 
<input type="checkbox" disabled checked> 

<img src="unchecked.gif"> 
<img src="checked.gif"> 
0

实际上有点CSS3,你可以嘲笑了一个非常简单的解决方案。 你将永远不得不考虑你想提供什么样的支持。 但是,如果你在现代浏览器上工作的很好,那就试试吧。

这里的HTML

<label> 
    <input type="checkbox" name="test" /> 
    <span>I accept terms and cons</span><br><br> 
    <button>Great!</button> 
</label> 

这里的CSS

button { display: none} 
:checked ~ button { 
    font-style: italic; 
    color: green; 
    display: inherit; 
} 

而这里的http://jsfiddle.net/DyjmM/