You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Firefox开发者版与Nightly中@-moz-document url-prefix失效问题

问题解答:Firefox开发者版/Nightly中@-moz-document规则失效的原因及解决方案

这个问题其实是Firefox对私有CSS规则的权限限制调整导致的,我来给你详细拆解:

核心原因

你用到的@-moz-document url-prefix()是Firefox曾经支持的私有前缀规则,用来专门针对Firefox浏览器应用自定义样式。但从Firefox 59版本开始,Mozilla为了安全性考虑,限制了普通网页上下文(非浏览器扩展、非用户自定义样式)中@-moz-document的使用权限

你的标准版Firefox可能版本相对较低,或者还在保留旧的兼容行为;而开发者版和Nightly作为测试通道,已经率先启用了这个安全限制,所以你的规则在这两个版本里无法生效。

可行的解决方案

方案1:改用标准的特性检测(推荐)

放弃使用@-moz-document,改用标准的@supports特性查询来检测Firefox,这个方法没有权限限制,且兼容性更好:

#data_submit_ensg:hover {width: 200px;}
/* 仅针对Firefox生效的样式 */
@supports (-moz-appearance:none) {
  #data_submit_ensg:hover {width: 295px;}
}

方案2:开启开发者版/Nightly的兼容开关(不推荐)

如果你的代码是用于自己浏览器的用户样式(比如userContent.cssuserChrome.css),可以通过修改浏览器配置来恢复@-moz-document的功能:

  • 在地址栏输入about:config并回车
  • 搜索layout.css.moz-document.content.enabled
  • 将该选项设置为true

不过这个方法会降低浏览器的安全性,只建议临时测试使用,长期来看还是推荐方案1的标准写法。

内容的提问来源于stack exchange,提问作者Mohamed Benkedadra

火山引擎 最新活动