【发布时间】:2011-11-02 05:38:49
【问题描述】:
我了解css规则可以针对属性值指定的元素,例如:
input[type="text"] {}
我可以制定一个针对省略某个属性的元素的规则吗?例如,我可以定位缺少 href 的元素或未指定类型的元素吗?
【问题讨论】:
标签: html css css-selectors
我了解css规则可以针对属性值指定的元素,例如:
input[type="text"] {}
我可以制定一个针对省略某个属性的元素的规则吗?例如,我可以定位缺少 href 的元素或未指定类型的元素吗?
【问题讨论】:
标签: html css css-selectors
您可以遵循以下模式:
a:not([href])
input:not([type])
attribute selector 用于选择具有指定属性的元素。
所有现代浏览器和 IE9+ 都支持:not,如果你需要 IE8 或更低版本的支持,那你就倒霉了。
【讨论】:
<a> 需要一个 href 属性出现在为了成为,你知道的,有效的 HTML。
foo:not(foo[*]){ color: red; } 的事情,但你可以做一个像foo{ color: red; } foo[green]{ color: green; } foo[blue]{ color: blue; } 这样的标准CSS 级联来定义一个“默认”值。这有一个很好的副作用,就是让任何其他/无法识别的值回退到默认值,而不是定义像 foo[normal],foo[default]{ color:red; } 这样的东西。
对于链接,您可以简单地使用:
a { color: red; }
a:link { color: green; }
小提琴:http://jsfiddle.net/ZHTXS/ 不需要 javascript。
对于表单属性,请使用上面提到的非属性模式input:not([type]),如果您需要支持旧版本的 IE,我可能会添加一个类并使用与条件 cmets 链接的 IE 特定样式表。
【讨论】:
你总是可以为 a 和 a href 设置不同的样式
【讨论】:
对我有用的唯一解决方案是将a:link { } 放在我的代码中。
我也试过了
a:not([href])
input:not([href=""])
input:not([href~=""])
但是对于带有多个用作标准代码块的 a 标签的 .scss 文件(不是我的想法),这是唯一的解决方案。
【讨论】: