2013-06-05 40 views
-1

我在div中收到一條消息,需要在未在Internet Explorer中查看的網頁上顯示該消息。我已經嘗試了標準<!--[if !IE]>和其他一些建議,但無濟於事。在除IE外的每個瀏覽器中都顯示div

有什麼我失蹤了嗎?

+0

的Internet Explorer 10和更大的,我想... –

+3

首先,解釋爲什麼你需要這樣做,因爲可能有更好的方法來解決它。其次,給你更多的細節,你嘗試了什麼,你遇到了什麼問題。 – bPratik

+0

讓我猜...消息說:「這個頁面在其他瀏覽器中效果最好」....?嚴重的是,不要這樣做。像這樣的瀏覽器檢測使我們一直回到20世紀90年代。這正是我們這些年來留給IE6遺留下來的東西。 – Spudley

回答

2

我不建議你做這種方式!

首先,browser detection is evil,你應該儘可能避免使用。使用諸如Modernizr之類的功能進行功能檢測更加方便用戶。請記住,許多用戶(所有移動用戶,Mac用戶,Linux用戶)的即使他們想要,也不會有使用IE的選項。

話雖如此,這是可能的...

OK,讓我們說你的HTML是這樣的:

<div id='notOnIE'>Some content, do not display on IE.</div> 

隱藏DIV在IE9和更早版本:

首先,讓我們來檢測IE9-,使這個div無形之中IE:

<!--[if IE]> 
    <style type='text/css'> 
     #notOnIE{ display:none; } 
    </style> 
<![endif]--> 

隱藏DIV在IE10:

現在,我們需要隱藏在IE10的DIV,它添加到您的CSS樣式表:

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { 
    #notOnIE{display:none;} 
} 

微軟故意打破,如果在IE10 IE標籤因爲它支持很多HTML5標準,人們(ab)使用這些標籤使他們的網站在IE中故意破解而不是渲染半工作版本。

Working demo on jsFiddle

注意:如果你想顯示在IE7的DIV和更早版本:

在你的評論表明您已經測試IE8及以上,但IE7甚至6仍然有使用,所以如果你想以示對那些DIV也一樣,你可以使用版本檢測:

<!--[if gte IE 8]> 
    <style> 
     #notOnIE{display:none;} 
    </style> 
<![endif]--> 

Working demo on jsFiddle

+0

這個作品完美!非常感謝你!我花了好幾年時間研究這個問題,好幾個小時,但沒有出現這種情況。再一次感謝你! –

+0

@ChrisTaylor沒問題,但請在某個時候嘗試Modernizr,它將在開發大衆市場網站時幫助您很多。 IE現在還不到市場的40%。 –

+0

謝謝@LightningDust。我正在調查Modernizer。 –

相關問題