2013-08-06 15 views
2

我如何才能覆蓋IE8瀏覽器的這種樣式(我不認爲我太在意IE7用戶了,除非標記是非常小的)?原始CSS文件中的條件IE8風格?

#menu ul { 
    margin:0; 
    padding:0; 
    width:650px; 
    } 
#menu ul li { 
    display:inline-block; 
    width:110px; 
    padding:15px 10px 15px 10px; 
    text-align:center; 
    color:#000; 
    text-decoration:none; 
    font-weight:bold; 
    background:#e5e5c3; 
    } 

顯然,IE8及以下不呈現在li元素顯示inline-block的這樣我怎麼能有條件地覆蓋這個在這個原始的CSS文件?

回答

5

您可以使用條件html標籤來添加一個類,如果瀏覽器是IE和通過特定目標,加載僅ie8樣式表或者使用CSS hack \0/來定位IE8。

如果您在IE中只有幾次一次性問題,我建議您使用頭部路線。

HTML類方法

在你HEAD

<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 

在你的CSS

.ie8 #menu ul li { 
    display:block; 
    width:110px; 
    padding:15px 10px 15px 10px; 
    text-align:center; 
    color:#000; 
    text-decoration:none; 
    font-weight:bold; 
    background:#e5e5c3; 
    } 

IE8僅樣式方法

在共享共享樣式後加載。

<!--[if IE 8]><link href="/css/app-ie8.css" type="text/stylesheet"/> <![endif]--> 

IE8 CSS破解使用\ 0 /選擇後直接

#nav li ul { 
    left: -39px\0/ !important; 
} 
0

如何使用獨立的樣式表這一點。或者要麼你可以在HTML中使用嵌入式樣式如下

<!--[if gte IE 8]> 
<style> 
#menu ul li{ 
.... 
} 
</style> 
<![endif]--> 

<!--[if gte IE 8]> 
<link rel="stylesheet" type="text/css" href="{path to your ie-8 override css}" /> 
<![endif]--> 

有一個另一黑客提到here