偶尔,css规则将被忽略,尽管已在加载的样式表中正确定义,并且正确地针对标记中明显存在的类。有没有人遇到这个问题,任何人都可以解释发生了什么?
您将无法重现此问题,但请考虑以下内容,粘贴自markup / scss:
.test-footer {
display: none;
background: red !important;
}
.test-footer {
display: none;
}
<footer class="test-footer"></footer>
最重要的规则什么也没做(我添加了红色!重要的一行,以确保它没有被覆盖)。然后,在不改变任何其他内容的情况下,我添加了第二个相同的规则,这个规则很荣幸。
我现在经历了几次这种情况 - 并不是经常出现在css行为异常的情况下,它已经进入了我要寻找的事情清单,但在过去的一年中我经常注意到这一点。
我正在使用Coda 2,并在运行OSX El Capitan的mac上工作。另外,我正在使用Coda sass插件进行编译。
各种浏览器的行为是一致的,编辑样式表的任何其他部分都会产生预期的结果。如上所述,我检查过,并且正确的css一直存在 - 其中一部分被忽略了。
我的解决方案不应该有效,为什么呢?来吧,问题不应该首先出现,为什么呢?
更新
我启用了隐藏的角色,看看他们是否可能是罪魁祸首,就像Ruud Helderman在下面提到的那样,但我一无所获。最后我不得不说谎。毕竟,我解决了我的问题,即使“解决方案”是一个神奇的侥幸,或者更确切地说是问题所在,并且问题被提出了与其他任何事情一样的求知欲。我暂时没有回答这个问题,认为如果再次发生,我会更新任何调查结果。
答案 0 :(得分:0)
我唯一的经验就是你所描述的任何地方,是样式表中的语法错误导致所有后续规则被忽略。错误规则之前的规则仍然有效。
另一种可能性可能是存在隐形字符(例如U+200B);尝试配置文本编辑器以显示不可打印的字符。
答案 1 :(得分:0)
好的,所以这回归的方式很重要 - 因为我认为未能从git中提取更改,因此很难抓住,因为当我将更改推送到服务器时,我的同事的样式更改似乎被覆盖了。我发现他的更改实际上存在于已编译的css中:它们被浏览器忽略了。我仍然没有在css中发现任何错误 - 没有隐藏的角色,没有任何东西。
但在这种情况下,scss的编写方式以及编译方式也存在差异。具体来说,他使用奇怪的换行符,这不应该影响输出,但确实如此。顺便说一下,他也使用Coda,所以这根本没有意义。但是“解决方案”结果是将sass输出样式改为“压缩”,这在开发中很烦人,并且不应该是必要的,因为编译的css一直都很好,但它使问题消失了,希望这是它的结束。