用于<input type =“?”的CSSselect器

有没有什么办法用CSS来定位基于types的所有input? 我有一个禁用的类,我使用各种禁用的表单元素,我设置文本框的背景颜色,但我不希望我的checkbox,以获得该颜色。

我知道我可以用独立的类来完成,但是如果可能的话,我宁愿使用CSS。 我敢肯定,我可以在JavaScript中设置,但再次寻找CSS。

我针对的是IE7 +。 所以我不认为我可以使用CSS3。

编辑

用CSS3我可以做类似的事情?

INPUT[type='text']:disabled ,这将更好地摆脱我的课程…

编辑

好的谢谢你的帮助! 所以这里有一个select器,它修改所有的文本框和区域已被禁用,无需设置任何类,当我开始这个问题,我从来没有想过这是可能的…

 INPUT[disabled][type='text'], TEXTAREA[disabled] { background-color: Silver; } 

这在IE7中工作

是。 IE7 +支持属性select器:

 input[type=radio] input[type^=ra] input[type*=d] input[type$=io] 

包含值等于,以…开头的属性types的元素input包含或以特定值结束。

其他安全(IE7 +)select器是:

  • 父>具有以下的孩子: p > span { font-weight: bold; } p > span { font-weight: bold; }
  • 在〜元素之前是: span ~ span { color: blue; } span ~ span { color: blue; }

对于<p><span/><span/></p>会有效地给你:

 <p> <span style="font-weight: bold;"> <span style="font-weight: bold; color: blue;"> </p> 

进一步阅读: 在quirksmode.com上的浏览器CSS兼容性

我很惊讶,其他人都认为这是不可能的。 CSS属性select器已经有一段时间了。 我想是时候清理我们的.css文件了。

可悲的是,其他海报是正确的,你是 …实际上,通过克朗纠正, 可以与你的IE7和一个严格的文档,但我们大多数与IE6的要求减less到JS或类的引用,但它一个CSS2属性,只有一个IE浏览器没有足够的支持。

除了完整性之外,typesselect符与[attribute=value]forms的xpath类似,但是存在许多有趣的变体。 当它可用的时候它将是相当强大的,对于IE8来说,这是件好事。

  • W3参考

  • 浏览器支持参考

你可以用jQuery来做到这一点。 使用它们的select器,你可以select属性,如types。 但是,这确实需要你的用户打开Javascript,并且要下载一个额外的文件,但是如果它工作的话。

对不起,简短的答案是否定的。 CSS(2.1)只会标记DOM的元素,而不是它们的属性。 你必须为每个input应用一个特定的类。

我知道,因为那会非常有用。

我知道你已经说过你更喜欢CSS over JavaScript,但你仍然应该考虑使用jQuery。 它为基于属性的DOM元素添加样式提供了一种非常干净优雅的方式。