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

Roc*_*ard 3 css firefox css-selectors

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

input:not([type="image"]):not([type="submit"])
Run Code Online (Sandbox Code Playgroud)

我想匹配所有input不属于类型image或类型的HTML 元素submit.

目标浏览器只是 Firefox,所以Mozilla CSS扩展很好.

Bol*_*ock 6

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

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

input:not([type="image"], [type="submit"])
Run Code Online (Sandbox Code Playgroud)

但这在技术上是一个错误,因为当时语法没有任何标准,并且它不再适用于任何主要版本.现在它已经进入了Selectors 4,所以希望很快就能回归.

选择器4也包含:matches(),它在Firefox中实现:-moz-any(),但是你不能使用它,因为它不接受否定(看起来:not()会有相同的扩展语法,所以每个允许另一个没有意义,但后来你想知道为什么他们没有实现一个:-moz-not()去做它).