You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Stylish用户CSS会覆盖作者CSS?

为什么用户插件的CSS能覆盖作者CSS的背景色?

先给大家还原一下遇到的场景:
页面的作者代码是这样的:

<!DOCTYPE html> 
<html> 
<head> 
<style type="text/css"> 
body { background: black; } 
</style> 
</head> 
<body> 
</body> 
</html>

用户通过Stylus或Stylish这类浏览器插件添加了自己的CSS:

body { background: white; }

按照常规理解,作者样式的优先级应该高于用户样式,页面本该显示黑色,但实际却是白色。这背后的原因其实和「用户样式的定义差异」有关:

  • 标准意义上的浏览器原生用户样式表(比如用户在浏览器设置里自定义的样式),优先级确实低于作者样式(除非加了!important)。
  • 但Stylus、Stylish这类插件注入的CSS,本质是以「作者身份」追加到页面的样式——它们会在页面自带的作者样式加载完成后,动态把用户的CSS插入到页面的样式体系中,属于页面样式的一部分。

这时候两个样式的选择器权重完全一致(都是body选择器,权重为0-0-1),又没有!important声明,那么根据CSS层叠的**「源顺序规则」**:后加载的样式会覆盖先加载的样式。插件的CSS晚于作者的<style>加载,所以白色背景就覆盖了黑色背景。

简单总结:插件的用户CSS不是浏览器标准的「用户样式」,而是晚于作者样式加载的「类作者样式」,靠加载顺序的优先级赢了。

内容的提问来源于stack exchange,提问作者Karashevich B.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:58:37