IE8不会加载我的CSS

时间:2013-09-09 21:58:20

标签: html css internet-explorer-8 modernizr

我知道之前有人问过,但这种情况不适用于其他情况。

以下是网站:link

Internet Explorer 8不想加载样式表。我尝试过使用Modernizr(虽然我可能使用它错了)。我试过在脑子里添加这个代码:

<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

当然,在其他一切方面都可以正常工作。

我确定它与HTML5和CSS3有关... 有什么建议吗?

2 个答案:

答案 0 :(得分:2)

加载CSS的主要原因是样式表使用媒体查询。

IE8不支持媒体查询。

您正在使用其他一些不受支持的功能,但媒体查询是主要的,因为几乎整个CSS代码都包含在一个媒体查询块或另一个媒体查询块中,IE8将无法理解其中任何一个。

要解决此问题,您应该更改媒体查询的方式。即使没有任何媒体查询,您也应该有一组默认应用的默认样式,然后仅使用媒体查询覆盖特定页面大小的样式。

这将允许您的CSS适用于不支持IE8等媒体查询的旧浏览器。在浏览器中,如果默认设置的屏幕大小错误,您可能会遇到布局问题,但如果您设置了合理的默认设置,那么这不应该是一个大问题。

有一些polyfill脚本会添加对IE8媒体查询的支持,例如[respond.js]](https://github.com/scottjehl/Respond),但如果你使用合理的默认值,则不需要使用它们。 (如果你确实需要它们,它们会很棒,但它们会对性能产生负面影响,所以如果没有它们就可以离开它们会更好)

希望有所帮助。

答案 1 :(得分:1)

整个样式表(style.css)由媒体查询组成。除非使用Respond.js,否则即使使用html5shiv,媒体查询也无法在IE8中运行。