html 即使通过style属性也不能覆盖用户代理样式表规则?

nbnkbykc  于 2023-11-15  发布在  其他
关注(0)|答案(1)|浏览(146)

我正在使用Ublock Origin浏览器扩展,它通过将css规则注入user agent stylesheet来隐藏广告:

a[href^="https://ad.doubleclick.net/"] {
    display: none !important;
}

字符串
它会隐藏链接,即使有样式属性:

there should be a link:
<a href="https://ad.doubleclick.net/" style="display: block !important">example1</a>


即使devtools显示style属性应该覆盖该规则:

计算的样式似乎不一致(链接仍隐藏):

“user stylesheet”中类似的css规则可以被style属性覆盖,没有问题:

a[href^="https://example.net/"] {
    display: none !important;
}
there should be a link:
<a href="https://example.net/" style="display: block !important">example2</a>

的字符串
这是一个浏览器错误吗?是否有解决方法??

Edge 119.0.2151.44
Windows 10 x64

fumotvh3

fumotvh31#

观察到的行为似乎遵循https://developer.mozilla.org/en-US/docs/Web/CSS/Cascade#cascading_order概述的层次结构。
重要性为!important的“author(developer)”位于(升序)优先级顺序的第5位,而重要性为!important的“user-agent(browser)”位于第7位,因此优先于author的样式。
因此,浏览器的解释在这里似乎是正确的;而错误将出现在开发工具端,它没有正确地“可视化”这一点。

相关问题