CSS3 Gradient

出處:W3CPLUS javascript

CSS3發佈好久了,如今在國外的一些頁面上常能看到他的身影,這讓我羨慕已久,只惋惜在國內爲了兼容IE,讓這一項技術受到很大的限制,不少Web前端人員都望而止步。雖然如此但仍是有不少朋友在鑽研CSS3在web中的應用,爲了避免被淘汰,我也開始向CSS3進發,爭取跟上技術的前沿。從如今開始我會不斷的發佈一些CSS3的應用,和你們一塊兒分享,今天咱們首先要看的就是:CSS3: Gradient─CSS3漸變。 css

CSS3 Gradient分爲linear-gradient(線性漸變)和radial-gradient(徑向漸變)。而咱們今天主要是針對線性漸變來剖析其具體的用法。爲了更好的應用CSS3 Gradient,咱們須要先了解一下目前的幾種現代瀏覽器的內核,主流內容主要有Mozilla(熟悉的有Firefox,Flock等瀏覽器)、WebKit(熟悉的有Safari、Chrome等瀏覽器)、Opera(Opera瀏覽器)、Trident(討厭的IE瀏覽器)。本文照常忽略IE無論,咱們主要看看在Mozilla、Webkit、Opera下的應用,固然在IE下也能夠實現,他須要經過IE特有的濾鏡來實現,在後面會列出濾鏡的使用語法,但不會具體介紹如何實用,感興趣的能夠搜索相關技術文檔。那咱們瞭解了這些,如今就開始今天的主題吧。 html

CSS3的線性漸變 前端

1、線性漸變在Mozilla下的應用 java

語法: css3

-moz-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* )

 

參數:其共有三個參數,第一個參數表示線性漸變的方向,top是從上到下、left是從左到右,若是定義成left top,那就是從左上角到右下角。第二個和第三個參數分別是起點顏色和終點顏色。你還能夠在它們之間插入更多的參數,表示多種顏色的漸變。如圖所示: web

根據上面的介紹,咱們先來看一個簡單的例子: chrome

HTML: 瀏覽器

<div class="example example1"></div>

 

CSS: ruby

.example {    width: 150px;    height: 80px;  }

 

(如無特殊說明,咱們後面的示例都是應用這一段html和css 的基本代碼)

如今咱們給這個div應用一個簡單的漸變樣式:

.example1 {    background: -moz-linear-gradient( top,#ccc,#000); }

 

效果以下:

注:這個效果暫時只有在Mozilla內核的瀏覽器下才能正常顯示。

2、線性漸變在Webkit下的應用

語法:

-webkit-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* )//最新發布書寫語法 -webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*) //老式語法書寫規則

 

參數:-webkit-gradient是webkit引擎對漸變的實現參數,一共有五個。第一個參數表示漸變類型(type),能夠是linear(線性漸變)或者radial(徑向漸變)。第二個參數和第三個參數,都是一對值,分別表示漸變起點和終點。這對值能夠用座標形式表示,也能夠用關鍵值表示,好比 left top(左上角)和left bottom(左下角)。第四個和第五個參數,分別是兩個color-stop函數。color-stop函數接受兩個參數,第一個表示漸變的位置,0爲起點,0.5爲中點,1爲結束點;第二個表示該點的顏色。如圖所示:

咱們先來看一個老式的寫法示例:

background: -webkit-gradient(linear,center top,center bottom,from(#ccc), to(#000));

 

效果以下所示

接着咱們在來看一下新式的寫法:

-webkit-linear-gradient(top,#ccc,#000);

 

這個效果我就不在貼出來了,你們在瀏覽器中一看就明白了,他們是否一致的效果。仔細對比,在Mozilla和Webkit下二者的學法都基本上一致了,只是其前綴的區別,固然哪一天他們能統一成同樣,對咱們來講固然是更好了,那就不用去處理了。將大大節省咱們的開發時間喲。

3、線性漸變在Opera下的應用

語法:

-o-linear-gradient([<point> || <angle>,]? <stop>, <stop> [, <stop>]); /* Opera 11.10+ */

 

參數:-o-linear-gradient有三個參數。第一個參數表示線性漸變的方向,top是從上到下、left是從左到右,若是定義成left top,那就是從左上角到右下角。第二個和第三個參數分別是起點顏色和終點顏色。你還能夠在它們之間插入更多的參數,表示多種顏色的漸變。(注:Opera支持的版本有限,本例測試都是在Opera11.1版本下,後面不在提示),如圖所示:

示例:

background: -o-linear-gradient(top,#ccc, #000);

 

效果如圖所示

4、線性漸變在Trident (IE)下的應用

語法:

filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr=#1471da, endColorstr=#1C85FB);/*IE<9>*/
-ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0, startColorstr=#1471da, endColorstr=#1C85FB)";/*IE8+*/

 

IE依靠濾鏡實現漸變。startColorstr表示起點的顏色,endColorstr表示終點顏色。GradientType表示漸變類型,0爲缺省值,表示垂直漸變,1表示水平漸變。如圖所示:

上面咱們主要介紹了線性漸變在上述四大核心模塊下的實現方法,接着咱們主要針對線性漸變在MOZ、Webkit、Opera三大模塊下實現各類不一樣線性漸變實例:

從上面的語法中咱們能夠很清楚的知道,要建立一個線性漸變,咱們須要建立一個起點和一個漸變方向(或角度),定義一個起始色:

-moz-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* ) -webkit-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* ) -o-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* )

 

具體應用以下:

background:-moz-linear-gradient(left,#ace,#f96);/*Mozilla*/ background:-webkit-gradient(linear,0 50%,100% 50%,from(#ace),to(#f96));/*Old gradient for webkit*/ background:-webkit-linear-gradient(left,#ace,#f96);/*new gradient for Webkit*/ background:-o-linear-gradient(left,#ace,#f96); /*Opera11*/

 

效果以下:

起始點(Starting Point)的工做方式相似於background position。您能夠設置水平和垂直位置爲百分比,或以像素爲單位,或在水平方向上可使用left/center/right,在垂直方向上可使用top/center/bottom。位置起始於左上角。若是你不指定水平或垂直位置,它將默認爲center。其工做方式主要包含:Top → Bottom、Left → Right、bottom → top、right → left等,接着咱們主要一種一種來看其實現的效果:

一、開始於center(水平方向)和top(垂直方向)也就是Top → Bottom:

/* Firefox 3.6+ */ background: -moz-linear-gradient(top, #ace, #f96); /* Safari 4-5, Chrome 1-9 */ /* -webkit-gradient(,[,]?,[,]? [,]*) */background: -webkit-gradient(linear,top,from(#ace),to(#f96)); /* Safari 5.1+, Chrome 10+ */ background: -webkit-linear-gradient(top, #ace, #f96); /* Opera 11.10+ */ background: -o-linear-gradient(top, #ace, #f96);

 

效果:

二、始於left(水平方向)和center(垂直方向)也是就Left → Right:

/* Firefox 3.6+ */ background: -moz-linear-gradient(left, #ace, #f96); /* Safari 5.1+, Chrome 10+ */ background: -webkit-linear-gradient(left, #ace, #f96); /* Opera 11.10+ */ background: -o-linear-gradient(left, #ace, #f96);

 

效果以下:

三、起始於left(水平方向)和top(垂直方向):

background: -moz-linear-gradient(left top, #ace, #f96); background: -webkit-linear-gradient(left top, #ace, #f96); background: -o-linear-gradient(left top, #ace, #f96);

 

效果以下:

四、Linear Gradient (with Even Stops):

/* Firefox 3.6+ */ background: -moz-linear-gradient(left, #ace, #f96, #ace, #f96, #ace); /* Safari 4-5, Chrome 1-9 */ background: -webkit-gradient(linear, left top, right top, from(#ace), color-stop(0.25, #f96), color-stop(0.5, #ace), color-stop(0.75, #f96), to(#ace)); /* Safari 5.1+, Chrome 10+ */ background: -webkit-linear-gradient(left, #ace, #f96, #ace, #f96, #ace); /* Opera 11.10+ */ background: -o-linear-gradient(left, #ace, #f96, #ace, #f96, #ace);

 

效果以下:

五、with Specified Arbitrary Stops:

/* Firefox 3.6+ */ background: -moz-linear-gradient(left, #ace, #f96 5%, #ace, #f96 95%, #ace); /* Safari 4-5, Chrome 1-9 */ background: -webkit-gradient(linear, left top, right top, from(#ace), color-stop(0.05, #f96), color-stop(0.5, #ace), color-stop(0.95, #f96), to(#ace)); /* Safari 5.1+, Chrome 10+ */ background: -webkit-linear-gradient(left, #ace, #f96 5%, #ace, #f96 95%, #ace); /* Opera 11.10+ */ background: -o-linear-gradient(left, #ace, #f96 5%, #ace, #f96 95%, #ace);

 

效果以下:

六、角度(Angle):

正如上面看到的示例,若是您不指定一個角度,它會根據起始位置自動定義。若是你想更多的控制漸變的方向,您不妨設置角度試試。例如,下面的兩個漸變具備相同的起點left center,可是加上一個30度的角度。

沒有角度的示例代碼:

background: -moz-linear-gradient(left, #ace, #f96); background: -webkit-linear-gradient(left,#ace,#f96); background: -o-linear-gradient(left, #ace, #f96);

 

加上30度的角度代碼:

background: -moz-linear-gradient(left 30deg, #ace, #f96); background: -webkit-gradient(linear, 0 0, 100% 100%, from(#ace),to(#f96)); background: -o-linear-gradient(30deg, #ace, #f96);

 

效果圖以下:

     

當指定的角度,請記住,它是一個由水平線與漸變線產生的的角度,逆時針方向。所以,使用0deg將產生一個左到右橫向梯度,而90度將建立一個從底部到頂部的垂直漸變。我來看看你核心代碼:

background: -moz-linear-gradient(<angle>, #ace, #f96); background: -webkit-gradient(<type>,<angle>, from(#ace), to(#f96)); background: -webkit-linear-gradient(<angle>, #ace, #f96); background: -o-linear-gradient(<angle>, #ace, #f96);

 

咱們來看看各角度的區別

.deg0 { background: -moz-linear-gradient(0deg, #ace, #f96); background: -webkit-gradient(linear,0 50%,100% 50%,from(#ace),to(#f96)); background: -webkit-linear-gradient(0deg, #ace, #f96); background: -o-linear-gradient(0deg, #ace, #f96); } .deg45 { background: -moz-linear-gradient(45deg, #ace, #f96); background: -webkit-gradient(linear,0 100%,100% 0%,from(#ace),to(#f96)); background: -webkit-linear-gradient(45deg, #ace, #f96); background: -o-linear-gradient(45deg, #ace, #f96); } .deg90 { background: -moz-linear-gradient(90deg, #ace, #f96); background: -webkit-gradient(linear,50% 100%,50% 0%,from(#ace),to(#f96)); background: -webkit-linear-gradient(90deg, #ace, #f96); background: -o-linear-gradient(90deg, #ace, #f96); } .deg135 { background: -moz-linear-gradient(135deg, #ace, #f96); background: -webkit-gradient(linear,100% 100%,0 0,from(#ace),to(#f96)); background: -webkit-linear-gradient(135deg, #ace, #f96); background: -o-linear-gradient(135deg, #ace, #f96); } .deg180 { background: -moz-linear-gradient(180deg, #ace, #f96); background: -webkit-gradient(linear,100% 50%,0 50%,from(#ace),to(#f96)); background: -webkit-linear-gradient(180deg, #ace, #f96); background: -o-linear-gradient(180deg, #ace, #f96); } .deg225 { background: -moz-linear-gradient(225deg, #ace, #f96); background: -webkit-gradient(linear,100% 0%,0 100%,from(#ace),to(#f96)); background: -webkit-linear-gradient(225deg, #ace, #f96); background: -o-linear-gradient(225deg, #ace, #f96); } .deg270 { background: -moz-linear-gradient(270deg, #ace, #f96); background: -webkit-gradient(linear,50% 0%,50% 100%,from(#ace),to(#f96)); background: -webkit-linear-gradient(270deg, #ace, #f96); background: -o-linear-gradient(270deg, #ace, #f96); } .deg315 { background: -moz-linear-gradient(315deg, #ace, #f96); background: -webkit-gradient(linear,0% 0%,100% 100%,from(#ace),to(#f96)); background: -webkit-linear-gradient(315deg, #ace, #f96); background: -o-linear-gradient(315deg, #ace, #f96); } .deg360 { background: -moz-linear-gradient(360deg, #ace, #f96); background: -webkit-gradient(linear,0 50%,100% 50%,from(#ace),to(#f96)); background: -webkit-linear-gradient(360deg, #ace, #f96); background: -o-linear-gradient(360deg, #ace, #f96); }

 

效果以下:

除了起始位置和角度,你應該指定起止顏色。起止顏色是沿着漸變線,將會在指定位置(以百分比或長度設定)含有指定顏色的點。色彩的起止數是無限的。若是您使用一個百分比位置,0%表明起點和100%是終點,但區域外的值能夠被用來達到預期的效果。 這也是經過CSS3 Gradient製做漸變的一個關鍵所在,其直接影響了你的設計效果,像咱們這裏的示例都不是完美的效果,只是爲了能給你們展現一個漸變的效果,你們就這樣先用着吧。咱們接着看一下不一樣的起址色的示例:

background: -moz-linear-gradient(top, #ace, #f96 80%, #f96); background: -webkit-linear-gradient(top,#ace,#f96 80%,#f96); background: -o-linear-gradient(top, #ace, #f96 80%, #f96);

 

效果以下:

若是沒有指定位置,顏色會均勻分佈。以下面的示例:

background: -moz-linear-gradient(left, red, #f96, yellow, green, #ace); background: -webkit-linear-gradient(left,red,#f96,yellow,green,#ace); background: -o-linear-gradient(left, red, #f96, yellow, green, #ace);

 

效果以下

七、漸變上應用透明─透明度(Transparency):

透明度還支持透明漸變。這對於製做一些特殊的效果是至關有用的,例如,當堆疊多個背景時。這裏是兩個背景的結合:一張圖片,一個白色到透明的線性漸變。咱們來看一個官網的示例吧:

background: -moz-linear-gradient(right, rgba(255,255,255,0), rgba(255,255,255,1)),url(http://demos.hacks.mozilla.org/openweb/resources/images/patterns/flowers-pattern.jpg); background: -webkit-linear-gradient(right, rgba(255,255,255,0), rgba(255,255,255,1)),url(http://demos.hacks.mozilla.org/openweb/resources/images/patterns/flowers-pattern.jpg); background: -o-linear-gradient(right, rgba(255,255,255,0), rgba(255,255,255,1)),url(http://demos.hacks.mozilla.org/openweb/resources/images/patterns/flowers-pattern.jpg);

 

接着看看效果吧

你們能夠時入這裏和原圖作一下比較,是否是很神奇呀。若是想體會的話,快點動手跟我一塊兒作吧。

上面咱們主要介紹了CSS3中線性漸變,文章一開始說過CSS3漸變包含兩個部分,其一就是咱們說的線性漸變,其二就是咱們接下來要說的徑向漸變。

CSS3的徑向漸變

CSS3的徑向漸變和其線性漸變是很類似的。咱們首先來看其語法

-moz-radial-gradient([<bg-position> || <angle>,]? [<shape> || <size>,]? <color-stop>, <color-stop>[, <color-stop>]*); -webkit-radial-gradient([<bg-position> || <angle>,]? [<shape> || <size>,]? <color-stop>, <color-stop>[, <color-stop>]*);

 

(須要特別說明一點的是,徑向漸變到目前還不支持Opera的內核瀏覽器,因此咱們徑向漸變都是在firefox,safari,chrome底下進行測試完成的。)

除了您已經在線性漸變中看到的起始位置,方向,和顏色,徑向梯度容許你指定漸變的形狀(圓形或橢圓形)和大小(最近端,最近角,最遠端,最遠角,包含或覆蓋 (closest-side, closest-corner, farthest-side, farthest-corner, contain or cover))。 顏色起止(Color stops):就像用線性漸變,你應該沿着漸變線定義漸變的起止顏色。下面爲了更好的理解其具體的用法,咱們主要經過不一樣的示例來對比CSS3徑向漸變的具體用法

示例一:

background: -moz-radial-gradient(#ace, #f96, #1E90FF); background: -webkit-radial-gradient(#ace, #f96, #1E90FF);

 

效果:

示例二:

background: -moz-radial-gradient(#ace 5%, #f96 25%, #1E90FF 50%); background: -webkit-radial-gradient(#ace 5%, #f96 25%, #1E90FF 50%);

 

效果:

從以上倆個示例的代碼中發現,他們起止色想同,但就是示例二定位了些數據,爲何會形成這麼大的區別呢?其實在徑向漸變中雖然具備相同的起止色,可是在沒有設置位置時,其默認顏色爲均勻間隔,這一點和咱們前面的線性漸變是同樣的,可是設置了漸變位置就會按照漸變位置去漸變,這就是咱們示例一和示例的區別之處:雖然圓具備相同的起止顏色,但在示例一爲默認的顏色間隔均勻的漸變,而示例二每種顏色都有特定的位置。

示例三

background: -moz-radial-gradient(bottom left, circle, #ace, #f96, #1E90FF); background: -webkit-radial-gradient(bottom left, circle, #ace, #f96, #1E90FF);

 

效果

示例四

background: -moz-radial-gradient(bottom left, ellipse, #ace, #f96, #1E90FF); background: -webkit-radial-gradient(bottom left, ellipse, #ace, #f96, #1E90FF);

 

效果

示例三和示例四咱們從效果中就能夠看出,其形狀不同,示例三程圓形而示例四程橢圓形狀,也是就是說他們存在形狀上的差別。然而咱們在回到兩個示例的代碼中,顯然在示例三中設置其形狀爲circle而在示例四中ellipse,換而言之在徑向漸變中,咱們是能夠會漸變設置其形狀的。

示例五

background: -moz-radial-gradient(ellipse closest-side, #ace, #f96 10%, #1E90FF 50%, #f96); background: -webkit-radial-gradient(ellipse closest-side, #ace, #f96 10%, #1E90FF 50%, #f96);

 

效果:

示例六

background: -moz-radial-gradient(ellipse farthest-corner, #ace, #f96 10%, #1E90FF 50%, #f96); background: -webkit-radial-gradient(ellipse farthest-corner, #ace, #f96 10%, #1E90FF 50%, #f96);

 

效果:

從示例五和示例六中的代碼中咱們能夠清楚知道,在示例五中我人應用了closest-side而在示例六中咱們應用了farthest-corner。這樣咱們能夠知道在徑向漸變中咱們還能夠爲其設置大小(Size):size的不一樣選項(closest-side, closest-corner, farthest-side, farthest-corner, contain or cover)指向被用來定義圓或橢圓大小的點。 示例:橢圓的近邊VS遠角 下面的兩個橢圓有不一樣的大小。示例五是由從起始點(center)到近邊的距離設定的,而示例六是由從起始點到遠角的的距離決定的。

示例七:

background: -moz-radial-gradient(circle closest-side, #ace, #f96 10%, #1E90FF 50%, #f96); background: -webkit-radial-gradient(circle closest-side, #ace, #f96 10%, #1E90FF 50%, #f96);

 

效果:

示例八:

background: -moz-radial-gradient(circle farthest-side, #ace, #f96 10%, #1E90FF 50%, #f96); background: -webkit-radial-gradient(circle farthest-side, #ace, #f96 10%, #1E90FF 50%, #f96);

 

效果:

示例七和示例八主要演示了圓的近邊VS遠邊 ,示例七的圓的漸變大小由起始點(center)到近邊的距離決定,而示例八的圓則有起始點到遠邊的距離決定。

示例九:

background: -moz-radial-gradient(#ace, #f96, #1E90FF); background: -webkit-radial-gradient(#ace, #f96, #1E90FF);

 

效果:

示例十:

background: -moz-radial-gradient(contain, #ace, #f96, #1E90FF); background: -webkit-radial-gradient(contain, #ace, #f96, #1E90FF);

 

效果:

示例九和示例十演示了包含圓 。在這裏你能夠看到示例九的默認圈,同一漸變版本,可是被包含的示例十的圓。

最後咱們在來看兩個實例一個是應用了中心定位和full sized,以下所示:

/* Firefox 3.6+ */ background: -moz-radial-gradient(circle, #ace, #f96); /* Safari 4-5, Chrome 1-9 */ /* Can't specify a percentage size? Laaaaaame. */ background: -webkit-gradient(radial, center center, 0, center center, 460, from(#ace), to(#f96)); /* Safari 5.1+, Chrome 10+ */ background: -webkit-radial-gradient(circle, #ace, #f96);

 

效果以下:

下面這個實例應用的是Positioned, Sized,請看代碼和效果

/* Firefox 3.6+ */ /* -moz-radial-gradient( [||,]? [||,]?,[,]* ) */ background: -moz-radial-gradient(80% 20%, closest-corner, #ace, #f96);  /* Safari 4-5, Chrome 1-9 */ background: -webkit-gradient(radial, 80% 20%, 0, 80% 40%, 100, from(#ace), to(#f96));  /* Safari 5.1+, Chrome 10+ */ background: -webkit-radial-gradient(80% 20%, closest-corner, #ace, #f96);

 

效果:

到此關於CSS3的兩種漸變方式咱們都介紹完了。在浪費你們一點時間,咱們看看CSS的重複漸變的應用。

若是您想重複一個漸變,您可使用-moz-repeating-linear-gradient和-moz-repeating-radial-gradient。 在下面的例子,每一個實例都指定了兩個起止顏色,並沒有限重複。

background: -moz-repeating-radial-gradient(#ace, #ace 5px, #f96 5px, #f96 10px); background: -webkit-repeating-radial-gradient(#ace, #ace 5px, #f96 5px, #f96 10px);

 

background: -moz-repeating-linear-gradient(top left -45deg, #ace, #ace 5px, #f96 5px, #f96 10px); background: -webkit-repeating-linear-gradient(top left -45deg, #ace, #ace 5px, #f96 5px, #f96 10px);

 

效果:

         

有關於CSS3漸變的東西就完了,你們看完了確定會想,他主要用在哪些方面呢?這個提及來就多了,最簡單的就是製做背景,咱們還能夠應用其製做一些漂亮的按鈕,還能夠用他來製做patterns,我在這裏列出幾種製做patterns的示例代碼吧:

HTML代碼:

<ul> <li class="gradient gradient1"></li> <li class="gradient gradient2"></li> <li class="gradient gradient3"></li> <li class="gradient gradient4"></li> <li class="gradient gradient5"></li> <li class="gradient gradient6"></li> </ul>

 

CSS 代碼:

ul { overflow: hidden; margin-top: 20px; } li{ width: 150px; height: 80px; margin-bottom: 10px; float: left; margin-right: 5px; background: #ace; /*Controls the size*/ -webkit-background-size: 20px 20px; -moz-background-size: 20px 20px; background-size: 20px 20px; } li.gradient1 { background-image: -webkit-gradient( linear, 0 100%, 100% 0, color-stop(.25, rgba(255, 255, 255, .2)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.75, rgba(255, 255, 255, .2)), color-stop(.75, transparent), to(transparent) ); background-image: -moz-linear-gradient( 45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent ); background-image: -o-linear-gradient( 45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent ); background-image: linear-gradient( 45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, gba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent ); } li.gradient2 { background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(.25, rgba(255, 255, 255, .2)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.75, rgba(255, 255, 255, .2)), color-stop(.75, transparent), to(transparent)); background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent); background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent); } li.gradient3 { background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.5, transparent), to(transparent)); background-image: -moz-linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent); background-image: -o-linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent); background-image: linear-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%, transparent); } li.gradient4 { background-image: -webkit-gradient(linear, 0 0, 100% 0, color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.5, transparent), to(transparent)); background-image: -moz-linear-gradient(0deg, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent); background-image: -o-linear-gradient(0deg, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent); background-image: linear-gradient(0deg, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent); } li.gradient5 { background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(.25, #555), color-stop(.25, transparent), to(transparent)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, #555), color-stop(.25, transparent), to(transparent)), -webkit-gradient(linear, 0 0, 100% 100%, color-stop(.75, transparent), color-stop(.75, #555)), -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.75, transparent), color-stop(.75, #555)); background-image: -moz-linear-gradient(45deg, #555 25%, transparent 25%, transparent), -moz-linear-gradient(-45deg, #555 25%, transparent 25%, transparent), -moz-linear-gradient(45deg, transparent 75%, #555 75%), -moz-linear-gradient(-45deg, transparent 75%, #555 75%); background-image: -o-linear-gradient(45deg, #555 25%, transparent 25%, transparent), -o-linear-gradient(-45deg, #555 25%, transparent 25%, transparent), -o-linear-gradient(45deg, transparent 75%, #555 75%), -o-linear-gradient(-45deg, transparent 75%, #555 75%); background-image: linear-gradient(45deg, #555 25%, transparent 25%, transparent), linear-gradient(-45deg, #555 25%, transparent 25%, transparent), linear-gradient(45deg, transparent 75%, #555 75%), linear-gradient(-45deg, transparent 75%, #555 75%); } li.gradient6 { background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, transparent), color-stop(.5, rgba(200, 0, 0, .5)), to(rgba(200, 0, 0, .5))), -webkit-gradient(linear, 0 0, 100% 0, color-stop(.5, transparent), color-stop(.5, rgba(200, 0, 0, .5)), to(rgba(200, 0, 0, .5))); background-image: -moz-linear-gradient(transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5)), -moz-linear-gradient(0deg, transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5)); background-image: -o-linear-gradient(transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5)), -o-linear-gradient(0deg, transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5)); background-image: linear-gradient(transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5)), linear-gradient(0deg, transparent 50%, rgba(200, 0, 0, .5) 50%, rgba(200, 0, 0, .5)); }

 

 效果:

不錯的效果吧,固然感興趣的朋友能夠到這裏學習製做更多的不一樣效果。

到此咱們關於CSS3─Gradient就介紹到這裏了,若是想學習製做漸變效果的,你們能夠看看W3CPLUS首頁的彩色菜單,我採用的就是CSS3 Gradient實現的,固然你們還能夠去看看這個DEMO的效果。但願能給你們對學習CSS3有點幫助,若是感興趣的朋友請觀注W3CPLUS,從今天開始我會系統的介紹一些CSS3的應用,但願你們能喜歡,更但願能跟你們一塊兒探討學習CSS3的相關技術。

更新一

今天爲之碰到一個IE9下的漸變色結合圓角製做的bug。換句話說:在IE9下你使用漸變色並且還須要製做圓角時,這個bug就出現了,在IE9下背景色不能徹底切完。通過他仔細研究,藉助Ultimate CSS Gradient Generator工具終於找到了兼容IE9的方法,請看下面的截圖:

我將代碼截取以下:

/* IE9 SVG, needs conditional override of 'filter' to 'none' */ background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzJjZTA2MiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM3ZGI5ZTgiIHN0b3Atb3BhY2l0eT0iMCIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top,  rgba(44,224,98,1) 0%, rgba(125,185,232,0) 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(44,224,98,1)), color-stop(100%,rgba(125,185,232,0))); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top,  rgba(44,224,98,1) 0%,rgba(125,185,232,0) 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top,  rgba(44,224,98,1) 0%,rgba(125,185,232,0) 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(top,  rgba(44,224,98,1) 0%,rgba(125,185,232,0) 100%); /* IE10+ */ background: linear-gradient(top,  rgba(44,224,98,1) 0%,rgba(125,185,232,0) 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2ce062', endColorstr='#007db9e8',GradientType=0 ); /* IE6-8 */ filter: none\9\0;/*ie9*/

如需轉載請註明出處:W3CPLUS

相關文章
相關標籤/搜索