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 */ }