2010-06-23 36 views
16

我已经看遍了,无法弄清楚这一点:你如何针对CSS中的禁用状态提交按钮?你如何定位提交按钮的禁用状态?

例如:如何将我的目标和风格的按钮:

<input value="Validate" disabled="disabled" type="submit"/> 
+0

“**靶向禁用状态提交按钮**”。你可以说得更详细点吗? – rahul 2010-06-23 10:40:22

+0

我想他想知道如何CSS一个灰色的按钮。 – NibblyPig 2010-06-23 10:42:31

+0

是的,我刚刚更新了一个例子按钮 – Thomas 2010-06-23 10:43:00

回答

22

您可以使用:

input[disabled=disabled][type=submit] { 
     background:green; 
    } 

在火狐上运行,并且据说除IE6外都很好。但我没有亲自测试过这种组合选择器。

PS:更健壮的,跨浏览器的方法,使用jQuery ...

$("input[disabled=disabled][type=submit]").css 
({ 
    'background': 'yellow', 
    'color':  'blue' 
}); 
+1

哇,工作。 +1000谢谢! – Thomas 2010-06-23 11:02:45

+0

不客气! – 2010-06-23 12:41:01

+1

请注意@Veger回答whith更现代的方法使用CSS3:禁用伪类 – ithil 2013-11-19 15:02:12

4
input[disabled='disabled'][type='submit'] 
{ 
... 
} 

并不在IE 6中工作,但在其他所有浏览器应该。 Reference

还有:disabled pseudo-class,但IE中根本不支持。

样式禁用的元素很难,因为它们有时具有不能被覆盖的属性。本文将展示哪些浏览器适用于哪些浏览器:Styling disabled form controls with CSS

+0

等待,这种风格是不是会禁用所有的元素?有没有一种方法专门针对禁用的按钮?_ – Thomas 2010-06-23 10:46:19

+0

@Thomas yup,它会。应该可以将它与'[type ='submit']'结合起来,但我不知道该如何诚实。一个类可以像这样工作:'input.classname [disabled ....' – 2010-06-23 10:51:35

+0

@Thomas尝试'[type ='submit'] [disabled ='disabled']'不保证虽然 – 2010-06-23 10:52:40

1

CSS中没有为禁用状态定义的伪类。

我的猜测是使用JQuery来更改禁用按钮的CSS类。

代码的jQuery:

<script language="javascript"> 
    $('input[type=button]').each(function() { 
     if ($(this).attr('disabled') == true) 
     { 
      $(this).addClass('disabled'); 
     } 
    }); 
</script> 

添加样式元素 '已禁用'。

+3

CSS3中有一个伪类,但它不被IE支持。 – 2010-06-23 10:48:14

+0

+1,因为浏览器支持很不完整,只要您确定客户端启用了javascript,就可以使用JS路由。 – dmp 2010-06-23 10:55:09

+0

即时通讯使用jquery,我将如何实现这一点? – Thomas 2010-06-23 10:55:15

0

我能想到的一种方法是将按钮的类设置为禁用,然后使用“input.disabled”指定适当的CSS。你会这样做吗?

+0

我曾考虑过这个问题,但我担心这可能会被工程师认为是糟糕的编码......我不知道将会怎样破坏这些人。 – Thomas 2010-06-23 10:50:41

+0

我同意这不是...'不错',但它是一个相当简单的解决方案。尽管从来没有在专业编码环境中工作过,但我不知道他们会期待什么。 – 2010-06-23 11:03:42

16

CSS3添加了:disabled伪类,它正是你想要的。

input:disabled { 
/*Disabled styles for input elements here*/ 
} 

由于this page显示所有主要的浏览器(除IE8)支持此标记,因此它似乎无法使用,但(除非你不需要IE浏览器支持)

+1

如果您有一位不需要IE支持的老板或客户,请给我打电话! ;-)我需要数周和统计数据才可以放弃IE6和IE7。 – 2010-06-23 11:40:39

+1

嘿嘿...好吧,你*已经设法放弃IE6和IE7,已经省了很多麻烦! – Veger 2010-06-23 11:44:11