0
<!--[if !(IE 7)]>
    <link href="/assets/css/fixed.css" rel="stylesheet" />
<![endif]-->

这是行不通的。我正在使用 Chrome,它没有在我引用的样式表中获取任何内容。我正在尝试添加一个样式表,该样式表会加载到除 IE 7 之外的所有内容中,因为我正在尝试实现一些 IE 7 不太支持的 UI 更改。

有人可以指出我在这里做错了什么吗?

4

4 回答 4

5

这些仅适用于 IE。所以你的样式表应该适用于 IE8+ 和 IE6-,而不是 IE7。所有其他浏览器只是将其视为代码注释并忽略它,因此为什么您没有在 Chrome 中获取样式表。

我还应该补充一点,这不是 CSS,而是 HTML。

<!-- --> 

这些(上图)是 html 注释。渲染引擎会忽略其中的任何内容。另一方面,IE 具有“特殊”逻辑来查找这些“IE '版本'”样式的注释。这些存在是因为旧版本的 IE 通常与世界其他地方不兼容!:)

我想补充的另一件事是,现在通常不考虑(抱歉,没有参考)编写浏览器检测的好习惯,而是编写功能检测。

有一些库可以帮助您编写跨浏览器兼容的 Css 和 Js。例如:分别是 CSS3PIEjQuery

于 2013-09-11T18:38:27.200 回答
1

try w/o the parenthesis. like:

<!--[if !IE 7]><!-->
<h1>You are NOT using IE7</h1>
<!--<![endif]-->

(tho' your code should be working as well)

于 2013-09-11T18:40:10.513 回答
1

使用这样的东西:

<!--[if IE 7 ]><link href="#" /><![endif]-->
<!--[if !IE7]>--><link href="#" /><!--<![endif]-->

您的示例,Chrome 仅查看评论,它不解析即条件 html。

于 2013-09-11T18:41:16.847 回答
0

尝试

<!--[if !IE7]>
  <link href="css/style.css" rel="stylesheet" media="screen">
<![endif]-->

或者如果大于 IE7 使用默认样式表

<!--[if gte IE 7]>
  <link href="css/style.css" rel="stylesheet" media="screen">
<![endif]-->

但我认为最好编写单独的 IE7 样式。

于 2013-09-11T18:42:54.097 回答