2013-02-02 7 views
11

Mam 2 obrazów jako tło mojego ciała:Fallback dla css3 wielu obrazów tła?

background: url(../img/upper_bg.png) 0 495px repeat-x, url(../img/bg.png) repeat; 

I okazało się, że w celu wykazania upper_bg.png powyżej bg.png obraz potrzebowałem, aby umieścić go na pierwszym miejscu listy. Jednak w przypadku przeglądarek, które nie obsługują wielu środowisk, chcę pokazać tylko bg.png, obawiam się, że przeglądarka przypada na upper_bg.png jako zastępstwo zamiast na bg.png. Jak mogę rozwiązać ten problem?

Odpowiedz

20

Wystarczy dodać deklarację background z zaledwie bg.png przed wielu środowisk należy zrobić:

background: url(../img/bg.png) repeat; 
background: url(../img/upper_bg.png) 0 495px repeat-x, url(../img/bg.png) repeat; 

Starsze przeglądarki zignoruje drugą linię i utrzymać pierwszą linię; nie powinni próbować używać żadnej części drugiej linii. Przeglądarki obsługujące wiele środowisk używają drugiej linii zamiast pierwszej, zastępując ją normalnie.

+0

Czy to działa w przypadku obrazów zastępczych, w których obraz jest niedostępny? (np. zdjęcia profilowe z awaryjną sylwetką, chociaż używanie 404 w trakcie zwykłego przetwarzania prawdopodobnie nie jest kanoniczne) – rookie1024

+0

Czy pojawiłaby się dodatkowa prośba, gdybyśmy mieli inny obraz na potrzeby rezerwowego? – nickspiel

+0

@ rookie1024: Niestety, nie. IIRC jest inna propozycja dla zapewnienia fallback w przypadku nieosiągalnych obrazów - która wymagałaby innej składni, która nie opierałaby się na kaskadowaniu, ponieważ kaskadowanie to zupełnie inna koncepcja. – BoltClock