CSS 3 gradiens a Firefox 3.6-ban
február 23, 2010 @ 21:24
Az eddig bemutatott CSS 3 technikák mindegyike működött Webkit motor alatt (azaz Safarin és Chrome-on), de a Firefox 3.5 nem állt ilyen jól. Reményre adott okot, hogy a Firefox 3.6 Alpha1 Codename Namoroka viszont gyakorlatilag mindent tudott, amit a Webkit-es böngészők. Ehhez képest igencsak meglepődtem, amikor kijött a 3.6-os Firefox, és ami működött az Alphában, az elsőre nem működött a végleges verzióban.
De aztán helyreállt a világ rendje, kiderült, hogy működik az, csak már nem azt a szintaxist kell használni, mint az alpha verzióban. Az új szintaxis a következő:
-moz-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* ); -moz-radial-gradient( [<point> || <angle>,]? [<shape> || <size>,]? <stop>, <stop>[, <stop>]* );
A lineáris gradiens változóinak magyarázata a következő. A point jelenti a gradiens kezdőpontját. Ugyanazok az értékek elfogadhatóak, mint a background-position esetében. Ha csak egy értéket adunk meg (pl. left), akkor a másik tengely menti értéket center-nek tekinti. Az angle jelenti a gradiens irányszögét. Megadható fokban, gradban vagy radiánban. A stop pedig egy színt jelölt, amelyhez opcionálisan egy helyet is megadhatunk a gradiensen belül, ahol a gradiensnek azt a színt fel kell vennie. Lássunk egy példát is (balra a gradiens, jobbra ugyanaz képként, arra az esetre, ha valaki nem Firefox 3.6-tal nézi):

background: -moz-linear-gradient(top, #000, #FFF);
A körgradiens esetében további változók szorulnak magyarázatra. A point alapértelmezett értéke az objektum középpontja. A shape változó a circle vagy az ellipse értéket veheti fel, ebből az utóbbi az alapértelmezett. A circle választásával kapunk tehát valódi körgradienst, egyébként elipszis alakú lesz. A size változó segítségével beállíthatjuk azt, hogy a gradiens hol érjen véget (meddig terjedjen). A lehetséges értékek a következők:
- closest-side
- A gradiens a doboz legközelebb eső oldaláig terjed. A closest-side szinonímája a contain.
- closest-corner
- A gradiens a doboz legközelebb eső sarkáig terjed.
- farthest-side
- A gradiens a doboz legtávolabb eső oldaláig terjed.
- farthest-corner
- A gradiens a doboz legtávolabb eső sarkáig terjed. A closest-side szinonímája a cover.
Íme erre is egy példa (balra a gradiens, jobbra a kép, mint fent):

background: -moz-radial-gradient(cover, white, black);
A Firefox a 3.6 verzióval tehát jelentősen ledolgozta a hátrányát a Webkit-es böngészőkkel szemben. Egyetlen kellemetlenség, hogy aki még az alpha verzióhoz optimalizálta a CSS-t, annak újra kell írnia (pl. nekem). Részletesebb információkat a témáról a Mozilla Developer oldalakon találtok (Using gradients, -moz-linear-gradient, -moz-radial-gradient), angol nyelven.

FMP1.net - Misi — 2010. március 6. szombat @ 22:26
Eddig, ha ilyet szerettem volna, egy nagy képet kellett renderelnem és viszonylag annak is nagy volta méretete. Hozzátéve, ha tömörítette az ember, akkor az átmenet sem volt olyan szép
Köszi a tippet! Kipróbálom majd a honlapomon!
admin — 2010. március 10. szerda @ 19:23
Ráadásul képként eleve tudni kell, hogy mekkora az objektum, aminek a háttereként használjuk, ezt pedig dinamikusan generált tartalomnál nem tudjuk.
Hannibal — 2010. április 20. kedd @ 21:51
Sziasztok nekem miért nem sikerül megcsinálni? Ki akartam próbálni és nem ment html css fájlom:
html:
Untitled Document
css:
body{
width:980px;
height:1100px;
background: -moz-linear-gradient:(top, #0CF, #009);
}
Hannibal — 2010. április 20. kedd @ 21:59
Már megoldódott, de aztr szeretném megtudni, hogy meg lehet-e azt csinálni, hogy ha van mondjuk 1 600px magas oldalam, akkor a gradient csak 0-200px-ig tartson?
void — 2010. május 15. szombat @ 21:17
Add DIV-nek a hátteret, aminek azt a méretet adod meg ami neked kell…