134

是否有 CSS 选择器通过其内联样式属性值选择此元素?

<div style='display:block'>...</div>

就像是

div[cssAttribute=cssValue]
4

3 回答 3

246

inlinestyle属性与任何其他 HTML 属性没有什么不同,并且可以与子字符串属性选择器匹配:

div[style*="display:block"]

然而正是由于这个原因,它非常脆弱。由于属性选择器不支持正则表达式,您只能执行属性值的精确子字符串匹配。例如,如果您在属性值的某处有一个空格,如下所示:

<div style='display: block'>...</div>

在您更改选择器以适应空间之前,它不会匹配。然后它将停止匹配包含空格的值,除非您包含所有排列,令人作呕。但是,如果您正在使用的文档中的内联样式声明本身不太可能发生变化,那么您应该没问题。

另请注意,这根本不是根据 DOM 中反映的实际指定、计算或使用的值来选择元素。对于 CSS 选择器是不可能的。

于 2011-12-08T06:07:06.760 回答
8

包含 ”;” 对我来说效果更好。

div[style*="display:block;"] 
于 2019-01-12T07:18:29.633 回答
0

始终查看属性是如何用 HTML 编写的(您可以在浏览器的“元素”选项卡中查看)。您必须使用完全相同的值。在我的情况下:style="left: 100%;"。而不是style="left:100%"或类似的东西。

于 2021-03-04T09:19:53.310 回答