2012-12-10 21 views
1

我所遇到:如何僅爲Internet Explorer定義CSS樣式?

/* for firefox only */ 
@-moz-document url-prefix() { 
#main_menu ul ul { 
top: 37px; 
} 
} 

其可用於僅限定火狐定型,有一個類似的替代使用用於定義樣式與只IE中使用?或者是在這裏被認爲是最佳實踐的「條件樣式表」方法?

http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

在這種情況下

我只是想改變一個下拉的CSS菜單的頂邊,因此只有少數款式需要進行調整的IE。

謝謝。

PS我也碰到過:

Setting CSS for IE only?

,我試圖把:

<!--[if IE]><!--> <html class="ie"> <!--<![endif]--> 
在頭

,然後定義在CSS中使用:

.ie#main_menu ul ul { 
top: 50px !important; 
} 

但我無法在IE中看到任何更改。

回答

0

您是使用IE的REAL版本進行測試,還是在Developer Tools中更改版本?例如,IE中的開發人員工具幾乎從不顯示它在IE 8中的外觀。

0

您是否檢查過您的樣式規則是否先應用了條件?可能在您的CSS選擇器中存在問題。我相信你的CSS選擇器應該是「.ie #main_menu ul ul」而不是你所擁有的。請注意「.IE」後面的空格

.ie #main_menu ul ul { 
    top: 50px !important; 
} 
2

你應該把這個代碼在HTML文件,你一般CSS之後。現在,您將擁有另一個CSS文件(ie.css),它將應用於瀏覽器Greater Then(和Equal)IE6及更高版本然後IE8(和Equal)。

<!--[if (gte IE 6)&(lte IE 8)]> 
    <link rel="stylesheet" href="css/ie8.css" media="screen,all" /> 
<![endif]--> 

或者您可以在原始CSS文件中使用「星級屬性hack」。在你的CSS規則前放一顆星星,你的目標是IE7及更低版本。例如:

div{ 
    top:20px; 
    *top:10px; 
} 
+0

僅供參考,IE 10不再支持有條件的意見 – CountMurphy

+0

好,可能IE10並不需要這麼多的「特殊」的情況下... – marinbgd