Gradient liniowy dla Opery

Autor: Marzena Fąfara / kategoria: CSS3, Webdesign / data: 29-04-2011

1

W poprzednim poście pokazałam w jaki sposób można stworzyć tło gradientowe poprawnie wyświetlane w przeglądarkach Mozilli, Chrome czy IE. Odkąd Opera poczyniła zdecydowane kroki w kierunku wsparcia CSS3 można już tworzyć ciekawe efekty również dla tej przeglądarki.

Wygląda na to, że przynajmniej na tym etapie będzie można wyeliminować udział programów graficznych do produkcji niejednolitego tła. Teraz jeśli mam ochotę zmienić sobie schemat kolorów wystarczy, że wklepię formułkę w pliku *.css i problem z głowy.

Obecnie opera potrafi wyświetlić różne gradienty liniowe: 2 i kilku kolorowe (na wsparcie gradientów radialnych musimy jeszcze chwilę poczekać).

Gradient 2-kolorowy

Aby utworzyć podstawowy gradient liniowy (-o-linear-gradient), należy naturalnie podać kolory początkowy i końcowy (podobnie jak to było w przypadku np. Mozilli):

width:300px;
border-radius:0.5em;
color:#fff;
font-size:16px;
text-shadow: 1px 1px 1px black;
text-align:center;
padding:20px 0 20px 0;

background-image: -o-linear-gradient(rgb(0,183,229),rgb(20,86,102));


Klasyczny prosty gradient kreślony w linii prostej od góry do dołu. Masz też możliwość sterowania kierunkiem kreślenia gradientu z pomocą definicji deg. I tak:

0deg – kreśli od lewej do prawej

background-image: -o-linear-gradient(0deg,rgb(0,183,229),rgb(20,86,102));

Opera gradient 0deg

90deg – kreśli od dołu do góry

background-image: -o-linear-gradient(90deg,rgb(0,183,229),rgb(20,86,102));

Opera gradient 90deg

180deg – kreśli od prawej do lewej

background-image: -o-linear-gradient(180deg,rgb(0,183,229),rgb(20,86,102));

Opera gradient 180deg

270deg – kreśli od góry do dołu

background-image: -o-linear-gradient(270deg,rgb(0,183,229),rgb(20,86,102));

Opera gradient 270deg

360deg działa analogicznie jak 0deg. Możesz ustawić sobie dowolny kąt kreślenia gradientu. Ten sam efekt uzyskasz również za pomocą definicji top left, top right, bottom left, bottom right. No dobrze, tak jest w przypadku gradientów 2-kolorowych, a jak jest w przypadku kilku kolorów?

Gradient wielokolorowy

Rozważmy gradient z pierwszego przykładu:

background-image: -o-linear-gradient(rgb(0,183,229),rgb(20,86,102));

możemy zapisać analogicznie w postaci:

background-image: -o-linear-gradient(top,rgb(0,183,229) 0%,rgb(20,86,102) 100%);

Teraz „złamiemy” go w połowie kolorem fioletowym

background-image: -o-linear-gradient(top,rgb(0,183,229),rgb(93,16,137) 50%,rgb(52,6,78) 75%,rgb(20,86,102));

Opera gradient wielokolorowy

Dołożyliśmy nowy kolor na wysokości 50% oraz kolejny na wysokości 75% licząc od góry. Zamiast procentów można naturalnie wykorzystywać piksele jeśli wartość pola wyznaczona jest w pikselach, np.

background-image: -o-linear-gradient(top,rgb(0,183,229),rgb(93,16,137) 27px,rgb(52,6,78) 40px,rgb(20,86,102));

Uzyskamy efekt podobny do wcześniejszego przykładu.

Powtarzanie gradientu

Jeśli mamy taką potrzebę możemy dany schemat kolorów powtarzać wielokrotnie. Być może efekt końcowy nie jest zbyt elegancki, ale warto wiedzieć że taka możliwość istnieje. Za powtarzanie gradientu odpowiedzialna jest pdefinicja repeating-linear-gradient. Nie jest wskazane używanie wartości procentowych gdyż może to zaburzyć jednorodność tła. Lepiej opierać się na wartościach pikseli.

background-image: -o-repeating-linear-gradient(45deg,rgb(0,183,229),rgb(103,215,244) 30px, rgb(20,86,102) 50px);

Opera - powtarzanie gradientu

Przezroczystość gradientu

Za pomocą przezroczystości gradientu możemy uzyskać kolejny ciekawy efekt tła naszego przycisku. Pojawia się nam nowa definicja rgba z możliwością podania wartości kanału alfa, który pozwoli na uzyskanie efektu przezroczystości tła przycisku. Zapis z pierwszego przykładu zmodyfikujemy w sposób następujący:

background-image: -o-linear-gradient(top,rgba(0,183,229,1),rgba(20,86,102,0.2));

Opera gradient z kanałem alfa

Naturalnie na białym tle nadal będzie wyglądać jak zwykły gradient, ale gdy podłożymy na stronie niejednolite tło, efekt będzie już wyraźnie widoczny.

Opera przezroczystość gradientu



Komentarze (1)

Miło, że Opera także idzie w stronę większego wsparcia CSS3. Jeśli nie będą się rozwijać, to zostaną daleko w tyle.

Dodaj komentarz