IE未应用样式

7
我正在将几个样式表编译成一个最小的样式表并在一个暂存环境中应用。在本地IE中,每个样式表是单独的,但在合并为一个最小样式表后,在IE的暂存环境中没有应用这些样式。我已经通过CSS验证器运行了这些样式表,并检查了每个样式表,并纠正了我发现的任何语法错误。我不一定需要知道如何解决问题,我主要想知道问题存在的位置。IE开发人员工具没有给我与样式未被应用相关的任何反馈。
这是一个链接到暂存环境登录页面的链接:https://s-app.joinhere.com/manage/sessions/new。样式在样式表中,只是在IE中没有应用。这是一个链接到编译后的最小样式表:https://staging.joinhere.com/assets/manage-d4f70cefc93b170b5f2a04509db697c8.css 谢谢!

1
我只能在IE 10中检查它,而且我看起来很好。你的IE没有应用特定的样式吗?还是整个CSS文件都没有应用? - csupnig
我刚遇到了类似的问题,但还没有解决。在IE9的CSS开发者工具中,它显示将特定颜色应用于节点,但显然并没有。 - Eric J.
2个回答

10

我尝试了您的页面,在Chrome中运行良好。然而,在IE9中它看起来很奇怪,就像您所描述的那样没有应用CSS样式。例如,样式body#manage-sessions#main_container#login_container没有应用。我查看了开发者工具中的CSS选项卡,结果发现该样式甚至不存在,这解释了为什么它不起作用。为了找出原因,我使用了开发人员工具中的网络检查器,并检查了IE9下载css时的响应。样式body#manage-sessions#main_container#login_container确实在响应中。这让我相信IE必须有某些限制,最大CSS文件大小可能是其中之一。正如此处所述,如果CSS文件超过一定大小,IE会忽略附加样式。因此,这解释了为什么在CSS文件分开时一切都正常运行,但在合并后情况就不同了。要解决问题,请尝试将大型CSS文件拆分为2个或多个小文件,以符合IE的限制,看看是否可以纠正问题。


3
原文:Turns out, in IE only the first 288kb in a file will be read and processed. Any CSS after 288kb will be ignored. We're at about 450 right now. I'm going to have to restructure the styles to get below 288. Thanks for the response!翻译:事实证明,在IE浏览器中,只有文件中的前288KB将被读取和处理。超过288KB的任何CSS都将被忽略。我们目前使用的是约450KB的CSS。我需要重新构建样式以使其低于288KB。感谢您的回复! - Erik Van Lankvelt
1
@ErikVanLankvelt,你总是可以指望IE给你带来这样的问题。无论如何,如果我的答案对你有帮助,请考虑接受它。 - Bojin Li
1
这个解决方案对我有效,但当我尝试时,似乎限制要低一些,所以一开始它没有起作用让我感到惊讶。将大小缩小到230K,它仍然无法工作。最终,在182的情况下,整个文件被成功解析了。真是一个烦人的问题。我会把它添加到我的IE战斗伤疤的长列表中。 - Adam
1
更正一下,280还是不行。在148的时候,似乎所有东西都被包含了进去。 - Adam
可能相关的内容:https://blogs.msdn.microsoft.com/ieinternals/2011/05/14/stylesheet-limits-in-internet-explorer/ - user2173353

1

我不确定你的个人设置,但是任何低于IE 10的浏览器只能处理32个单独的样式表,而在此之后的版本中,它们仍然会显示在开发工具中,就像正常工作一样,但请放心,第33个样式表已经注定了默默失败的命运。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接