2011-03-11 88 views
1

我知道有很多關於背景圖片的問題,但我正在尋找只使用背景圖片之一的IE7,IE8回退。與其他人正在尋找的有點不同。多背景圖像| Fallback for <IE9

background-color:#ebe2c2; 
background-image:url('../images/bg-clouds.png'), url('../images/bg-main-repeat.jpg'); 
background-repeat:no-repeat, repeat; 
background-position:center top, left top; 
background-attachment:fixed, fixed; 

我該如何獲得只有「bg-main-repeat.jpg」及其所有屬性才能應用?現在IE7/IE8只能回退到顏色。我可以使用不同的格式對代碼進行格式化,以便現代瀏覽器同時應用背景圖像,但較舊的僅應用一種。我不想添加更多的HTML,但如果這是唯一的方法,這是唯一的方法。

在此先感謝

回答

1

您可以使用以下兩種方法之一:

  1. CSS 「黑客」,迫使某些瀏覽器不同的行爲

  2. (好多了)使用內置在僅限Internet Explorer的條件語句中,如:

    <!--[if lt IE 9]> 
    <link REL="stylesheet" HREF="css/ie.css" TYPE="text/css"> 
    <![endif] --> 
    

    爲在Internet Explorer中呈現的頁面指定不同的CSS。

+0

哎呀,我最初寫於所有IE瀏覽器上使用。更新與正確的條件聲明... –

+0

我希望不訴諸於此,但謝謝。 –

+0

我也不在乎這麼做,但在我看來,它使整體代碼更清晰,並且不需要使用不受支持的「技巧」。 –

9

你會這樣做。

background:url('../images/bg-clouds.png') center top no-repeat fixed; 
background:url('../images/bg-clouds.png') center top no-repeat fixed, 
    url('../images/bg-main-repeat.jpg') left top repeat fixed 
; 
background-color:#ebe2c2; 
+0

我覺得'background-color'舊的解析器會忽略太多,因爲它落在第二個「錯誤的」背景上,並繼續解析下一個CSS元素。 – nk9

3

我曾經使用條件樣式,但它更方便地使用瀏覽器特定HTML類,可以讓你只用一個樣式表寫的瀏覽器特定的CSS。

代替您的標準HTML開放標記和下列:

<!--[if IE 7]><html class="lt-ie8 lt-ie9 lt-ie10 ie7"><![endif]--> 
<!--[if IE 8]><html class="lt-ie9 lt-ie10 ie8"><![endif]--> 
<!--[if IE 9]><html class="lt-ie10 ie9"><![endif]-->      
<!--[if gt IE 9]><!--><html><!--<![endif]--> 

這裏是你的CSS:

/* default css */ 
.element { 
    background-color:#ebe2c2; 
    background-image:url('../images/bg-clouds.png'), url('../images/bg-main-repeat.jpg'); 
    background-repeat:no-repeat, repeat; 
    background-position:center top, left top; 
    background-attachment:fixed, fixed; 
} 

/* conditional css */ 
.lt-ie9 .element { 
    background-color:#ebe2c2; 
    background-image:url('../images/bg-main-repeat.jpg'); 
    background-repeat:repeat; 
    background-position:left top; 
    background-attachment:fixed; 
}