没有*任何*属性的目标元素?

Target elements without *any* attributes?

是否有允许监管的选择器方法,例如。 HTML 标签是一个干净的“”,没有任何属性?

我正在尝试为 Firefox 中浏览器生成的图像页面创建一个时尚覆盖 sheet,但我基本上必须将它应用于所有 URI,因为这些页面表面上始终仍然来自图像本身域。

最简单的方法似乎是测试 HTML 和 Body 标签是否具有 zero 属性(加上图像上的 only-child 和 class 选择标签),因为大多数没有被浏览器生成的文档的结构不会像 <html><body><img class="...

这样简单地开始

但我能找到的只是如何排除特定属性,而不是所有

我尝试了以下但没有成功:

[] {
  color: blue;
}

[*] {
  color: red;
}
<p>Clean element with no attributes</p>
<p class="has-class">Has class attribute</p>
<p id="has-id">Has ID attribute</p>
<p data-has-data-attribute="">Has data attribute</p>

我能想到的唯一剩余选项就是监管人们会看到的标准属性(“class”、“style”、“name”、“lang”等),但这是一个冗长且不断变化的列表,尽管有许多非标准列表。

当前不存在匹配没有属性的标签的 selector。

我通读了 the latest CSS selector reference,但找不到 select 或者可以满足您的要求。

您不能在属性 select 或 select 的所有内容中使用星号,很遗憾。这两个铁路图代表允许的内容:

所以你的前两次尝试无效,有效的空字符串似乎没有效果:

[] {
  color: blue;
}

[*] {
  color: red;
}

[""] { /* Seems to select nothing, rather than 'no attribute' */
  color: magenta;
}
<p>Clean element with no attributes</p>
<p class="has-class">Has class attribute</p>
<p id="has-id">Has ID attribute</p>
<p data-has-data-attribute="">Has data attribute</p>

我想不出任何不涉及 JavaScript 的可能的破解方法。如果我找到解决方案,我会编辑这个答案。