【发布时间】:2012-01-15 15:31:46
【问题描述】:
是否有 CSS 选择器可以通过其内联样式属性值选择此元素?
<div style='display:block'>...</div>
类似
div[cssAttribute=cssValue]
【问题讨论】:
标签: html css css-selectors inline-styles
是否有 CSS 选择器可以通过其内联样式属性值选择此元素?
<div style='display:block'>...</div>
类似
div[cssAttribute=cssValue]
【问题讨论】:
标签: html css css-selectors inline-styles
内联 style 属性与任何其他 HTML 属性没有什么不同,可以与子字符串属性选择器匹配:
div[style*="display:block"]
正是由于这个原因,它非常脆弱。由于属性选择器不支持正则表达式,您只能对属性值执行 exact 子字符串匹配。例如,如果您在属性值的某处有一个空格,如下所示:
<div style='display: block'>...</div>
在您更改选择器以适应空间之前,它不会匹配。然后它将停止匹配 不 包含空格的值,除非你包含所有排列,令人作呕。但是,如果您正在处理的文档中的内联样式声明本身不太可能发生变化,那么您应该没问题。
还请注意,这不是根据它们在 DOM 中反映的实际指定、计算或使用的值来选择元素。 这在 CSS 选择器中是不可能的。
【讨论】:
包括“;”对我来说效果更好。
div[style*="display:block;"]
【讨论】:
style必须与HTML属性完全匹配
;。
始终查看属性是如何用 HTML 编写的(您可以在浏览器的“元素”选项卡中查看)。您必须使用完全相同的值。就我而言:style="left: 100%;"。而不是style="left:100%" 或类似的东西。
【讨论】: