transitio
transitio copied to clipboard
重启前后 CSS 优先级不一致
在添加或编辑一个 CSS 样式后,CSS 样式会立即生效(如果开启开发者模式),但是重启 QQ 后部分样式优先级低于 QQ 内置的样式又会失效,必须加上 !important 提高优先级才行。
按理来说,如果必须要加 !important 才可以生效,那么应当一直需要加 !important 而不是在重启后出现优先级不一致的问题。
复现方法:
- 打开插件的开发者模式
- 安装这个:https://gist.github.com/EmptyDreams/e1374d3e334904f1103bee1ff9087dc5
- 把这个代码片段中的
!important删除 - 观察聊天气泡颜色,此时颜色设置是生效了的
- 重启 QQ 再观察聊天气泡颜色,发现又回到了 QQ 默认设置
- 此时再随便编辑一下这个 CSS 文件并保存,发现样式又生效了
- 重启后再次失效
- 添加
!important后重启,样式正常生效
和 CSS 插入的位置有关系,如果优先级相同,排在后面的 CSS 会覆盖前面的。猜测是重启后插件注入的 CSS 在 QQ 的 CSS 之前,而重载 CSS 后插件注入的 CSS 自然就到 QQ 的 CSS 之后(因为使用的是 document.head.appendChild)。
逝世 commit 53edc5e1e2af834b3df5f71a6cf81e58ba795caa, 应该可以解决这个问题