CSS选择器

时间:2009-01-22 20:39:44

标签: css internet-explorer css-selectors

有没有办法用CSS根据类型定位所有输入?我有一个禁用的类我在各种禁用的表单元素上使用,我正在设置文本框的背景颜色,但我不希望我的复选框获得该颜色。

我知道我可以用单独的类来做这件事但是如果可能的话我宁愿使用CSS。我敢肯定,我可以在javascript中设置它,但再次寻找CSS。

我的目标是IE7 +。所以我认为我不能使用CSS3。

修改

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

INPUT[type='text']:disabled这样可以更好地完全摆脱我的课程......

修改

好的,谢谢你的帮助!所以这里是一个选择器,它修改了所有文本框和禁用区域而不需要设置任何类,当我开始这个问题时,我从未想过这是可能的......

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

这适用于IE7

4 个答案:

答案 0 :(得分:154)

是。 IE7 +支持属性选择器:

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

具有属性类型的元素输入,其中包含的值等于,包含或以某个值结束。

其他安全(IE7 +)选择器是:

  • 父母>有p > span { font-weight: bold; }
  • 的孩子
  • 前面是〜元素:span ~ span { color: blue; }

<p><span/><span/></p>有效地为您提供:

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

进一步阅读: Browser CSS compatibility on quirksmode.com

我很惊讶其他人都认为无法做到。 CSS属性选择器已经存在了一段时间。我想是时候清理我们的.css文件了。

答案 1 :(得分:3)

可悲的是,其他海报是正确的,你 ...实际上由kRON更正,可以使用你的IE7和严格的文档,但我们大多数的IE6要求被简化为JS或类引用,但它一个CSS2属性,只有一个没有IE ^ h ^ h浏览器的足够支持。

出于完整性,类型选择器 - 类似于xpath - 形式为[attribute=value],但存在许多有趣的变体。它在它可用时非常强大,对IE8来说是个好主意。

答案 2 :(得分:1)

你可以用jQuery做到这一点。使用选择器,您可以按属性选择,例如类型。但是,这确实要求您的用户启用了Javascript,还有一个要下载的附加文件,但是如果有效的话......

答案 3 :(得分:0)

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

Bummer我知道,因为那将是非常有用的。

我知道你说你喜欢CSS而不是JavaScript,但是你仍然应该考虑使用jQuery。它提供了一种非常干净和优雅的方式,可以根据属性为DOM元素添加样式。