2009-11-03 58 views
1

我試圖使用IE特定的條件語句來改變基於瀏覽器類型的類設置。我的印象是他們可以做到這一點,但我似乎無法得到它的工作。我的IE條件語句如何在樣式標記中不起作用?

下面是一個簡單的例子,如果瀏覽器是IE的文本應該是藍色的,否則文本應該保持紅色。

「瀏覽器是IE」在身體語句工作正常,如果我打開Firefox它不在那裏,Internet Explorer ..它是。

我在做什麼錯?

<html> 
<head> 
<style type="text/css"> 
.class{color:red;} 
<!--[if IE]> 
.class{color:blue;} 
<![endif]--> 
</head> 
</style> 
<body> 
<!--[if IE]> 
This browser is IE 
<![endif]--> 
<p class="class">Color changing text based on browser</p> 
</body> 
</html> 

回答

9

首先你的代碼不工作 - 你應該有CSS讀.color.class

二有條件的陳述並不裏面的CSS工作。因此,改爲編寫代碼,使條件符合IE特定的樣式。

<html> 
<head> 
    <style type="text/css"> 
     .color{ color:red; } 
    </style> 

    <!--[if IE]> 
    <style type="text/css"> 
     .color{ color:blue; } 
    </style> 
    <![endif]--> 
</head> 

<body> 
    <!--[if IE]> 
    This browser is IE 
    <![endif]--> 
    <p class="color">Color changing text based on browser</p> 
</body> 
</html> 
+0

Psssh,很好..得到了我的類混在我的頭,沒有仔細檢查我的工作。我更喜歡你的解決方案,因爲我覺得創建整個樣式表不是必須的,除非我有大量的css需要進行條件化。 ;)所以我會給你信貸,但肯的也是對的。感謝您的幫助LFSR – payling 2009-11-03 20:20:24

+0

@payling - 不知道這是不是一個錯誤,或者如果這就是你如何寫下它 – 2009-11-03 20:24:59

2

顯然他們不在樣式標籤內工作。 (請看這裏:http://reference.sitepoint.com/css/conditionalcomments

雖然看起來你可以在head標籤中使用它們,但如果它是IE,還包括一個外部CSS文件,如果它是另一個瀏覽器,就隱藏該css文件。

1

如果 '黑客' 的或有針對性的對IE6的年紀較大,你可以但是也可以如下操作:

.color { 
    color: red; 
} 

* html .color { 
    color: blue; 
} 

注 「* HTML」 前綴。這隻能由IE6和更舊版本解析。您也可以使用「!important」聲明。 IE6及更高版本會忽略該特定行。

.color { 
    color: red !important; 
    color: blue; 
} 

如果你有相當多的人,更好的做法是使用條件語句加載額外的CSS樣式表文件。

0

你也可以做color:red; _color:blue;