有没有办法用CSS根据类型定位所有输入?我有一个禁用的类我在各种禁用的表单元素上使用,我正在设置文本框的背景颜色,但我不希望我的复选框获得该颜色。
我知道我可以用单独的类来做这件事但是如果可能的话我宁愿使用CSS。我敢肯定,我可以在javascript中设置它,但再次寻找CSS。
我的目标是IE7 +。所以我认为我不能使用CSS3。
修改
使用CSS3,我可以做类似的事情吗?
INPUT[type='text']:disabled
这样可以更好地完全摆脱我的课程......
修改
好的,谢谢你的帮助!所以这里是一个选择器,它修改了所有文本框和禁用区域而不需要设置任何类,当我开始这个问题时,我从未想过这是可能的......
INPUT[disabled][type='text'], TEXTAREA[disabled]
{
background-color: Silver;
}
这适用于IE7
答案 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元素添加样式。