表达CSS选择器的更优雅方式

时间:2015-08-19 04:48:09

标签: css firefox css-selectors

是否有更优雅的方式来编写以下CSS选择器?

input:not([type="image"]):not([type="submit"])

我希望匹配所有不属于input类型或image类型的HTML submit元素。

目标浏览器仅 Firefox,因此Mozilla CSS扩展程序很好。

2 个答案:

答案 0 :(得分:6)

  

是否有更优雅的方式来编写以下CSS选择器?

不,没有。 Firefox 3以前允许:not()包含任意数量的选择器,这些选择器允许您编写

input:not([type="image"], [type="submit"])

但这在技术上是一个错误,因为当时的语法不在任何标准中,并且它不再适用于任何主要版本。它现在在Selectors 4,所以希望它很快就会回归。

选择器4还包含:matches(),它在Firefox中以:-moz-any()的形式实现,但您无法使用它,因为它不接受否定(视为:not()无论如何,将使用相同的扩展语法,让每个允许另一个都没有意义,但是你想知道他们为什么没有实现:-moz-not()来使用它。

答案 1 :(得分:1)

你可以尝试

input:not([type="image"], [type="submit"])

但你的选择器匹配更好。