0

我想使用条件注释来攻击IE7,使其像真正的浏览器一样行为。IE7认为它是IE8?

但是最近几天,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]--> 

然后将麦粒肿lesheet在IE7和IE8中呈现。

任何想法?我很难过。

+0

听起来像一个奇怪的问题。你有没有现场的例子? – user194076

+0

我没有IE来测试,但你有没有尝试删除'IE'和'8'之间的空间? (这当然是纯粹的猜测和狂妄的猜测。) –

+1

@David Thomas:这个空间应该足够古怪。 – BoltClock

回答

0

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

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

您的条件样式表的链接是,然后在你的CSS您添加即类,你需要每一个特定的IE变化。因此,让我们说你填充通常是6个像素,但IE浏览器,你需要它是4像素,您对此DIV + CSS看起来像:

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

我会将该类添加到'body'元素。 – Blender

0

你也可以使用一个CSS破解目标IE7只能从主样式表内:

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