2012-03-14 56 views
0

在我的智慧結束在這裏。試圖實現兩個不同的樣式表,一個用於IE,另一個用於非IE。在我見過的每一個例子中,這都是你應該這樣做的方式。任何人都可以在這發現任何錯誤?看起來應該很簡單。使用兩個條件的CSS if語句既不使用樣式表

<!--[if !IE]><link rel='stylesheet' type='text/css' href='/login/css/correctlogin.css'/><![endif]--> 
<!--[if IE]><link rel='stylesheet' type='text/css' href='/login/css/ielogin.css'/><![endif]--> 
+0

難道不工作? – CoffeeRain 2012-03-14 20:26:24

+0

請看標題。 – buddyp450 2012-03-14 20:27:32

+0

它是怎麼發生的?這兩種樣式表僅針對IE瀏覽器顯示嗎?不要顯示IE瀏覽器?所有的瀏覽器都顯示兩種樣式表嗎? – dangerChihuahua007 2012-03-14 20:28:04

回答

4

對於!IE條件註釋,正確的格式是<!--[IF !IE]>--> ... <!-- <![endif]-->,因爲非IE瀏覽器不具備條件的意見進行特殊處理。

<!--[if !IE]> --><link rel='stylesheet' type='text/css' href='/login/css/correctlogin.css'/><!-- <![endif]--> 
<!--[if IE]><link rel='stylesheet' type='text/css' href='/login/css/ielogin.css'/><![endif]--> 

參見:http://www.quirksmode.org/css/condcom.html
PS。條件註釋在IE10中不再受支持。

+0

感謝您對IE10的評論,我還沒有意識到這一點(我還沒有看過IE10)。 – ScottS 2012-03-14 21:34:10

2

如果不是IE語句是多餘的。所有你需要的是一個如果IE語句。

<link rel='stylesheet' type='text/css' href='/login/css/correctlogin.css'/> 
<!--[if IE]> 
<link rel='stylesheet' type='text/css' href='/login/css/ielogin.css'/> 
<![endif]--> 

這告訴每一個瀏覽器使用correctlogin.css,如果瀏覽器是IE,然後還要使用ielogin.css

+1

這可能是更好的解決方案,因爲兩個樣式表中的大部分代碼都應該匹配。 'ielogin.css'應該只有IE特定的更正。 – zim2411 2012-03-14 20:31:46

+0

這有點偏離主題,但我的一個更正是背景圖像的_removal_。在這種情況下,我實際上不需要使用原始樣式表屬性。 – buddyp450 2012-03-14 20:40:56

+1

@ buddyp450 ...爲什麼?只需在IE樣式表中設置'background-image:none;'即可。 – Scott 2012-03-14 20:42:12