在仍然复制问题的同时,我尽可能地接近了真正的SSCCE:
<!DOCTYPE html>
<html class="colored-bg">
<head>
<title>Firefox CSS Priority Test</title>
<link rel="stylesheet" id="_switchSheetBackup" href="//Shared.BHStudios.org/_css/visual_Clean_Blue.css"/>
<link rel="stylesheet" id="_switchSheet" href="//Shared.BHStudios.org/_css/visual_Clean_Purple.php"/>
</head>
<body>
This page should have a purple background, not a blue one.
<br/>
<a href="#" class="inverse button">This should have purple text.</a>
</body>
</html>
如您所见,第一个样式表是备份,以防第二个样式表不加载或需要一段时间加载(这是我实现最小JS网站主题的方式,因此,更改样式时,用户不会看到明显的闪烁)。预期的结果是,如果所有样式表均正确加载,则该页面为紫色。
这在Chrome和Edge浏览器中效果很好,但在Firefox中效果不佳。奇怪的是,它只是背景色;其他类inverse button
(如使带有彩色文本的白色按钮)可以按预期工作!Firefox中是否存在导致这个问题的怪癖或不受支持的功能?最重要的是,我该如何解决?
另外,我尝试进一步最小化代码,但无法复制这种怪异的行为。
visual_Clean_Purple.php的第33行的规则破坏了Firefox中的CSS。尝试删除:
*::selection,
BoltClock在此答案中提供了很好的解释:
Firefox似乎根本不了解:: selection(因此必须使用供应商前缀的::-moz-selection),因此它会忽略按照规范遇到无法识别的选择器的整个规则。
对于浏览器不了解组中的一个或多个 选择器的常见解决方法是拆分/复制规则集。
...
实际上,在这种情况下,这是您唯一可以做的,即您将不得不忍受这一点点膨胀。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句