2011-02-24 123 views
7

這是在我的網頁的頂部代碼:IE兼容模式錯誤

<!DOCTYPE html> 

<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]--> 
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]--> 
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]--> 
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]--> 
<head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
    <meta charset="utf-8"> 
    <title></title> 
    ... 

我使用從Paul Irish條件註釋代碼,使其更容易發現和解決IE的問題,但是這個代碼似乎本身就是一個問題。問題是,儘管我根據MSDN guidelines明確聲明ie=edge,但使用條件註釋代碼強制我的頁面進入IE8兼容模式。

卸下條件註釋代碼周圍html標籤修復了故障,並讓IE8在標準模式呈現;但我寧願找到一個解決方案,讓我保持有條件的代碼,仍然迫使IE瀏覽器在標準兼容模式下呈現。請記住,我沒有使用.htaccess文件,因爲這個網站使用的是windows/asp設置。

回答

0
+0

但似乎他仍然可以嘗試將它放在標記上?不確定這是否受到相同錯誤的影響。 – 2011-02-25 01:54:03

+0

鏈接無效... – nebulousGirl 2012-07-10 12:14:30

+2

這可能是更新後的鏈接:https://github.com/h5bp/html5-boilerplate/issues/1187這可能與以下內容有關:https://github.com/h5bp/html5-boilerplate/issues/378 – 2012-10-19 17:26:25

0

你說:

請記住我沒有的.htaccess 文件作爲該網站使用使用 窗口/ ASP的設置。

我認爲,這意味着你可以圍繞這個問題得到通過指定X-UA-Compatible作爲HTTP響應頭,而不是作爲一個meta標籤。

如果您使用傳統的ASP,你可以在你的文件的頂部使用,並擺脫了元標記:
(我猜你的意思是經典ASP基礎上,缺乏ASP的。在個人資料中扣除相關的東西)

Response.AddHeader "X-UA-Compatible", "IE=edge,chrome=1" 

這個答案是基於太多的猜測,我喜歡,所以它可能平淡無法正常工作。

而且,這個問題威力幫助:

IE8 standards mode meta tag

2

我發現如果在文件開頭的註釋,然後meta標籤也可以是一個註釋。

它的工作原理呢,然後它是有效的HTML5!

<!–[if IE]><![endif]–> 
<!DOCTYPE html> 
<html lang="de"> 
<head> 

<title></title> 
<!–[if gte IE 8]><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><![endif]–> 

在這種情況下,像IE8和IE9,但不是content="IE=Edge,Chrome"

所以,請只content="IE-Edge"

+0

我喜歡把meta放在只有IE的條件註釋中,因爲meta僅適用於IE。 – nebulousGirl 2012-07-10 12:15:44

+0

放入條件將不起作用。它不兼容。 – egr103 2012-09-11 15:16:35

+0

有一個寫在這裏http://nicolas.gallagher.com/better-conditional-classnames-for-hack-free-css/但是...我有點擔心,未來即版本,甚至可能只是其他瀏覽器會亂如果有任何事情發生在文檔類型之前。 – user1010892 2013-01-16 10:25:56

7

開頭空註釋修復它。

<!--[if IE_NEEDS_THIS]><![endif]--> 
<!DOCTYPE HTML> 
<!--[if lt IE 9]><html class="lt-ie9"><![endif]--> 
<!--[if gt IE 8]><!--><html class="gt-ie8"><!--<![endif]--> 
<head> 
<meta charset="utf-8"/> 
<meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 
<title>--</title> 

但是不要在元標記周圍添加條件註釋。 IE10將陷入怪癖。