条件CSS

条件CSS,css,internet-explorer,browser,Css,Internet Explorer,Browser,我有一些样式表,我想根据IE版本加载。非常直截了当的东西,除了我在IE中查看网站的时候,所有的样式表似乎都没有被加载 <!--[if IE 7]> <link rel="stylesheet" href="css/ie7.css"> <![endif]--> <!--[if IE 8]> <link rel="stylesheet" href="css/ie8.css"> <![endif]--> <

我有一些样式表,我想根据IE版本加载。非常直截了当的东西,除了我在IE中查看网站的时候,所有的样式表似乎都没有被加载

<!--[if IE 7]>
     <link rel="stylesheet" href="css/ie7.css">
<![endif]-->
<!--[if IE 8]>
     <link rel="stylesheet" href="css/ie8.css">
<![endif]-->
<!--[if IE 9]>
     <link rel="stylesheet" href="css/ie9.css">
<![endif]-->

在我看来这很好,似乎无法理解为什么没有加载特定于版本的样式表

我已经做了多次刷新,以防只是缓存问题,但似乎没有任何区别

任何想法。

使用在所有浏览器中共享的一个样式表引用,查看一个可能更好、更易于维护的解决方案。应用根级别的类是为了从一个样式表中针对特定的浏览器

<!--[if lt IE 7]> <html lang="en-us" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>    <html lang="en-us" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>    <html lang="en-us" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en-us" class="no-js"> <!--<![endif]-->

您的条件语句是正确的

通过在不使用语句的情况下加载它们,确保它们已正确链接


编辑:确保关闭链接标签。

您提到,在没有条件的情况下,样式表可以在除Internet Explorer以外的所有浏览器中正常加载

这表明你的条件不是问题,而是你的链接问题。您没有关闭链接标记,Internet Explorer对此可能比其他浏览器更严格。尝试将标记更改为以下内容:

<!--[if IE 7]>
     <link rel="stylesheet" href="css/ie7.css" type="text/css" />
<![endif]-->
<!--[if IE 8]>
     <link rel="stylesheet" href="css/ie8.css" type="text/css" />
<![endif]-->
<!--[if IE 9]>
     <link rel="stylesheet" href="css/ie9.css" type="text/css" />
<![endif]-->

我建议您尝试使用任何一个条件CSS语句7、8或9,然后添加其余两个。此外,取决于仅适用于IE的唯一CSS。尝试更改div的一些基本属性

例如,div的通用CSS可能如下所示

#sample {border:solid 5px red;}
对于IE-将此css放在任意一个css中,即ie7.css/ie8.css/ie9.css

#sample {border:solid 5px green;}

我想这应该行得通。

如果删除注释,是否所有样式表都正确加载?是的,如果没有条件语句,加载它们不会有问题。除非由于某些奇怪的原因,它们仍然没有出现在IE浏览器中。这对回答问题有什么作用?如果找不到解决方案或初始问题得到解决,它会提供一个替代解决方案。如果没有条件语句,css将加载到每个浏览器中(如预期的那样)除了IE浏览器。可能是因为您没有关闭链接标记。/>是否需要重新工作?我认为这是一些奇怪的缓存问题。我关闭了链接标签,它仍然表现得很奇怪。我认为这是某种缓存问题,现在是挑选和选择何时加载新样式表,而不是每次刷新。@JMcNelis-我对我的答案进行了轻微编辑,添加了一个
类型
。这将向浏览器提供有关此链接的更多信息,并可能有助于解决缓存问题。确保每次重新加载时都强制进行完全浏览器刷新。