禁用的input type="submit"的CSS选择器

80

CSS中是否有一个用于禁用状态的


4
:disabled 在 CSS3 中可能更好。但是,IE 不支持这两种方法中的任何一种,因此您需要一个备用类。 - bobince
谢谢,说得好,但我计划暂时远离CSS3。 - Francisc
14
开发人员应该停止尝试支持IE6,站点所有者/管理者也应该停止要求开发人员支持它。大家都来吧-- IE9 现在已经发布了! - Spudley
1
考虑到我的客户端用户中有24%使用IE6,我不得不暂时忽略它,这很遗憾。IE9很好,但是例如在Windows XP上无法使用。 - Francisc
2
现在来说,24%对于IE6来说是高于平均水平的,但是如果你有这样的统计数据,你需要应对。但并不意味着你必须使所有东西在其中看起来完美,只要功能正常即可。就我们而言,我们看到大约17%,并已经决定在我们即将推出的网站改版中积极放弃对其的支持。 - Spudley
4个回答

124

"那在IE6中能行吗?"

不行,IE6根本不支持属性选择器,请参考CSS兼容性和Internet Explorer

你可能会发现这篇文章如何解决:IE6不支持CSS“属性”选择器值得一读。


编辑
如果你可以忽略IE6,你可以使用以下方法(CSS2.1):

input[type=submit][disabled=disabled],
button[disabled=disabled] {
    ...
}

CSS3(IE9+):

input[type=submit]:disabled,
button:disabled {
    ...
}

您可以将[disabled=disabled](属性值)替换为[disabled](属性存在)。


好的,谢谢。但是如果我要忽略IE6,应该怎么做呢?input[type="button"[disabled]]是否标准? - Francisc
再次感谢您提供的第一个链接,CSS兼容性和Internet Explorer - 文章非常棒,已经添加到书签中了。 - Francisc
1
@SuperUberDuper 基于属性的方法适用于IE8(既不是IE6也不是IE9+)。IE7和IE8都支持一些CSS2.1和CSS3选择器,其中包括属性值/存在。 - jensgram

2

如jensgram所说,IE6不支持属性选择器。您可以向已禁用的输入框添加class="disabled",以便在IE6中使用。


0

我使用了@jensgram的解决方案来隐藏包含禁用输入的div。因此,我隐藏了整个输入框的父元素。

以下是代码:

div:has(>input[disabled=disabled]) {
    display: none;
}

也许这能帮助到你们中的一些人。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接