IE7认为它是IE8?

时间:2011-11-07 23:58:09

标签: css internet-explorer internet-explorer-7 conditional conditional-comments

我正在尝试使用条件注释来破解IE7,使其表现得像真正的浏览器。

但是最近几天,IE7忽略了引用它的条件,并且仅响应针对IE8的条件。

我的标题有:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1    /DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

...

条件是:

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

在IE7或8中无法识别。但如果是

<!--[if IE 8]>
<link rel="stylesheet" href="/css/ieHacks.css" type="text/css" media="screen" />
<![endif]-->

然后在IE7和IE8中呈现样式表。

有什么想法吗?我很难过。

2 个答案:

答案 0 :(得分:0)

我有IE8没有阅​​读IE样式表的问题,所以现在我更喜欢在我的主样式表上添加一个IE类。无论如何,使用一个样式表来维护代码更容易。保罗爱尔兰explains it better但基本上你把这个:

<!--[if IE]> <html class="ie"> <![endif]-->

您的条件样式表链接在哪里,然后在您的CSS中为每个IE特定的更改添加ie类。所以让我们说你的填充通常是6px但是对于IE你需要它是4px,你的css对于那个div看起来像:

.someClass {padding: 6px;}
.ie .someClass {padding: 4px;}

答案 1 :(得分:0)

您也可以使用CSS hack仅在主样式表中定位IE7:

*:first-child+html { /* Apply IE7-only CSS here */ }