2011-11-09 66 views
0

我認爲IE7及以上的瀏覽器跟Chrome/Firefox/Opera一樣,但是當我在IE8中運行以下代碼,然後在Chrome/Firefox /歌劇,我得到不同的結果。帶菜單的CSS菜單IE8和Chrome/Firefox/Opera之間的模型差異

在IE8中,的末尾顯示出一點我想擺脫的嘴脣。是否可以嚴格使用CSS來解決我的問題,或者是否需要使用Javascript來檢測瀏覽器,然後更改CSS?

以下是我正在使用的代碼的鏈接。爲了看到我的問題,你需要使用IE瀏覽器,然後是Chrome,Firefox或Opera。

http://jsfiddle.net/LsXTk/1/

回答

1

IE7有兩種模式:兼容模式和標準模式。另一個是MS在IE上的一大亮點。 (是的,我是在諷刺):

http://blogs.msdn.com/b/chkoenig/archive/2008/08/28/ie8-standards-mode-and-ie7-compatibility-mode.aspx

通常什麼人絆倒了的是,在默認情況下,IE8恢復到兼容性(即爆發)模式如果頁面被本地或從裝服務器在您的網絡上。我猜想邏輯是它必須是內聯網上的一個頁面,並且由於所有內聯網網絡軟件中有90%是可怕編碼的IE6怪物,在任何標準瀏覽器中幾乎都會中斷,所以最好假設代碼已損壞並恢復到兼容模式。

至於檢測IE8,你可以通過IE瀏覽器的條件註釋不使用JavaScript。我通常做的是包裹在條件語句口主體標籤,並給每個一個唯一的ID:

<!--[if !IE]> --> 
    <body> 
<!--<![endif]--> 
<!--[if gt IE 8]> 
<body id="IE9"> 
<![endif]--> 
<!--[if IE 8]> 
    <body id="IE8"> 
<![endif]--> 
<!--[if IE 7]> 
    <body id="IE7"> 
<![endif]--> 
<!--[if lt IE 7]> 
    <body id="IE6"> 
<![endif]--> 

然後在你的CSS,你可以很容易地根據需要成爲了獨立的CSS:

.myStyle {for good browsers} 
#ie7 .myStyle {fix for IE7} 
+0

完美。這就像一個冠軍! – JoeFletch