IE7和IE8未加载条件CSS

时间:2011-05-18 02:17:02

标签: html css internet-explorer-8 internet-explorer-7

我写了一堆CSS,使我的网站首先成为Mobile,然后我使用CSS Media Queries为桌面浏览器加载另一个样式表。我这样做是因为有很多移动浏览器不理解CSS媒体查询,桌面用户更有可能拥有支持此功能的现代浏览器。

我有以下CSS适用于所有现代浏览器(IE9,Chrome,Firefox 3.6 +,Safari 4 + 5):

然后我意识到IE7和IE8不支持CSS媒体查询,所以上面的内容不起作用。所以我添加了一个条件语句来加载它:

<link rel="Stylesheet" type="text/css" href="/css/mobile.css" media="all"/>
<!-- [if lt IE 9]>
<link rel="Stylesheet" type="text/css" href="/css/desktop.css" media="all" />
<! [endif] -->  
<link rel="Stylesheet" type="text/css" href="/css/desktop.css" media="only screen and (min-width: 640px)" />

然而,使用IE Tester和Browsershots,我已经确认在IE 7和8中没有加载desktop.css。它似乎完全忽略了样式表。

然后我尝试将条件语句更改为<!-- [if IE 8]>,但这没有任何效果。

最后,我完全删除了条件语句,产生了以下代码:

<link rel="Stylesheet" type="text/css" href="/css/mobile.css" media="all"/>
<link rel="Stylesheet" type="text/css" href="/css/desktop.css" media="all" />

最后一次尝试导致我的desktop.css被加载到IE7和IE8中。所以这证明了CSS是可以的。看起来我的条件语句没有被触发。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:8)

删除空格。这打破了conditional syntax。否则,IE将其视为正常评论。

<!--[if IE 8]>
...
<![endif]-->