2012-04-25 80 views
0

所以我有以下的CSS獲取背景圖像的大小到我的div的100%。CSS HTML如何忽略一些CSS爲非ie7或ie8

#solutionsNav div.leadgen { 
background:url(/images/leadGen_bg2.png) no-repeat; 
background-size: 100% 100%; 
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/leadGen_bg2.png', sizingMethod='scale'); 
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/leadGen_bg2.png', sizingMethod='scale')"; 
behavior: url(/scripts/PIE.htc); 
padding: 10px; 
color: #FFF; 
cursor: pointer; 

}

這似乎現在所有的瀏覽器,但唯一的問題是,在IE7和IE8,我可以看到背景的輪廓:URL(/images/leadGen_bg2.png)當圖像被拉伸以適應div。我已經測試過,如果我拿出背景:在上面的url(/images/leadGen_bg2.png)它仍然在IE7和IE8中正常工作,但不能再在Firefox中看到它。

我怎麼能解決這個問題?

回答

3

使用條件註釋爲IE8及更低版本專門加載樣式表,並使用它來加載所有hax。

<!--[if lte IE 8]><link rel="stylesheet" href="ie-hax.css" /><![endif]--> 
+0

啊是的,這看起來應該怎麼做我只是不能控制什麼樣式表得到實施。反正在CSS文件中實現什麼瀏覽器應該做什麼...在IE7 IE我可以做*有沒有像IE8的東西? – StevieB 2012-04-25 16:10:09

0

要擴大Kolink的回答是:

<!--[if lte IE 8]> 
#solutionsNav div.leadgen { background: none; } 
<![endif]--> 

確保這個規則來,你在你的答案定義了規則之後,所以它的優先級。爲您的IE黑客使用單獨的樣式表是個不錯的主意。

0

我用conditional classes來解決這個問題。例如,如果你這個替換你的開場<body>標籤:

<!--[if lt IE 7 ]><body class="oldie ie6"><![endif]--> 
<!--[if IE 7 ]><body class="oldie ie7"><![endif]--> 
<!--[if IE 8 ]><body class="ie8"><![endif]--> 
<!--[if IE 9 ]><body class="ie9"><![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--><body><!--<![endif]--> 

...你會得到一系列的類在Internet Explorer中明確針對性。你可以專門針對你的CSS,如下所示:

/* Good browsers */ 
#solutionsNav div.leadgen { 
    background:url(/images/leadGen_bg2.png) no-repeat; 
    background-size: 100% 100%; 
    padding: 10px; 
    color: #FFF; 
    cursor: pointer; 
} 
/* IE-specific code */ 
.oldie #solutionsNav div.leadgen, 
.ie8 #solutionsNav div.leadgen { 
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/leadGen_bg2.png', sizingMethod='scale'); 
    -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/leadGen_bg2.png', sizingMethod='scale')"; 
    behavior: url(/scripts/PIE.htc); 
}