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

标签 css firefox css-selectors

下面的CSS选择器有没有更优雅的写法?

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

我想匹配所有不是 image 类型或 submit 类型的 HTML input 元素。

目标浏览器 Firefox,因此 Mozilla CSS 扩展没问题。

最佳答案

Is there a more elegant way to write the following CSS selector?

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

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

但这在技术上是一个错误,因为语法在当时没有任何标准,并且从那以后它不再适用于任何主要版本。现在在Selectors 4 ,不过,希望它能尽快回归。

Selectors 4 还包含 :matches(),它在 Firefox 中实现为 :-moz-any(),但是你不能使用它,因为它没有't accept negations(因为 :not() 无论如何都会有相同的扩展语法,让每个人允许另一个人是没有意义的,但是你想知道为什么他们没有实现一个:-moz-not() 配合使用)。

关于css - 表达 CSS 选择器的更优雅的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32086765/

相关文章:

html - Flexbox 与同一容器内的图像和文本对齐

css - 使用 SALON 主题的 Logo 未出现在 Wordpress 中

css - 在这种情况下,为什么 CSS ID 不是最高优先级的 CSS 规则?

html - IE7 与 FF float 问题

html - 如何在 CSS 中选择文本而不是图像

html - 访问状态后按钮的背景颜色问题

html - 任何方式来设置 :nth-child(an + b) selector? 子元素的样式

javascript - PhantomJS 的行为不同于 Firefox webdriver

html - 在 Chrome/Firefox 中使用 <i> 图标和文本设置 <button> 样式

css - 是否有 CSS 父级选择器?