2011-11-08 10 views
28

Próbuję umieścić gradient css3 na górze obrazu tła. Korzystanie z poniższego kodu powoduje umieszczenie obrazu tła na górze gradientu, ale próbuję zrobić to na odwrót, więc gradient działa jak maska ​​na wierzchu.Czy można nakładać przezroczysty gradient css3 na obraz tła?

url(images/darkwood.png), 
-webkit-gradient(linear, 0 0, 0 100%, from(#EEF), to(#000)) 300px 50px no-repeat, 
-webkit-gradient(linear, 0 0, 0 100%, from(#EFE), to(#000)) 0 0 no-repeat; 
background: 
url(images/darkwood.png), 
-moz-linear-gradient(#EEF, rgba(0,0,0,1)) 300px 50px no-repeat, 
-moz-linear-gradient(#EFE, rgba(0,0,0,1)) 0 0 no-repeat; 

Dzięki za pomoc

+1

można zrobić [jsFiddle demo] (http://jsfiddle.net/) z tego, co masz do tej pory? Możesz przesłać obraz [tutaj] (http://imgur.com/). – thirtydot

Odpowiedz

52

muszę to zrobić dla jednego z mojej strony, mam nadzieję, że to praca dla ciebie;

body { 
    margin: 0; 
    padding: 0; 
    background: url('img/background.jpg') repeat; 
} 

body:before { 
    content: " "; 
    width: 100%; 
    height: 100%; 
    position: absolute; 
    z-index: -1; 
    top: 0; 
    left: 0; 
    background: -webkit-radial-gradient(top center, ellipse cover, rgba(255,255,255,0.2) 0%,rgba(0,0,0,0.5) 100%); 
} 
+1

Szukałem czegoś, co robi to przez bardzo długi czas. Jedyna zmiana jaką wprowadziłem to 'position: fixed'. – seaneshbaugh

+1

Ty, proszę pana, to prawdziwy klejnot. – Aaronius

+0

To jest dokładnie to, czego szukałem .. Dziękuję !!! – fbonetti

18

Powyższy przykład nie działa z wymiennymi elementami div.

Twój kod będzie działał poprawnie. Ale jak rozumiem, CSS czyta od prawej do lewej. Więc trzeba by użyć następujących:

div { 
    background: -webkit-radial-gradient(top center, ellipse cover, rgba(255,255,255,0.2) 0%,rgba(0,0,0,0.5) 100%), url('http://www.google.co.uk/logos/classicplus.png') repeat; 
} 

Przykład: http://sapphion.com/2011/11/css3-background-gradient-on-top-of-an-image/