CSS3發(fā)布很久了,現在在國外的一些頁(yè)面上常能看到他的身影,這讓我羨慕已久,只可惜在國內為了兼容IE,讓這一項技術(shù)受到很大的限制,很多Web前端人員都望而止步。雖然如此但還是有很多朋友在鉆研CSS3在web中的應用,為了不被淘汰,我也開(kāi)始向CSS3進(jìn)發(fā),爭取跟上技術(shù)的前沿。從現在開(kāi)始我會(huì )不斷的發(fā)布一些CSS3的應用,和大家一起分享,今天我們首先要看的就是:CSS3: Gradient─CSS3漸變。
CSS3 Gradient分為linear-gradient(線(xiàn)性漸變)和radial-gradient(徑向漸變)。而我們今天主要是針對線(xiàn)性漸變來(lái)剖析其具體的用法。為了更好的應用CSS3 Gradient,我們需要先了解一下目前的幾種現代瀏覽器的內核,主流內容主要有Mozilla(熟悉的有Firefox,Flock等瀏覽器)、WebKit(熟悉的有Safari、Chrome等瀏覽器)、Opera(Opera瀏覽器)、Trident(討厭的IE瀏覽器)。本文照常忽略IE不管,我們主要看看在Mozilla、Webkit、Opera下的應用,當然在IE下也可以實(shí)現,他需要通過(guò)IE特有的濾鏡來(lái)實(shí)現,在后面會(huì )列出濾鏡的使用語(yǔ)法,但不會(huì )具體介紹如何實(shí)用,感興趣的可以搜索相關(guān)技術(shù)文檔。那我們了解了這些,現在就開(kāi)始今天的主題吧。
CSS3的線(xiàn)性漸變
一、線(xiàn)性漸變在Mozilla下的應用
語(yǔ)法:
-moz-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* )
參數:其共有三個(gè)參數,第一個(gè)參數表示線(xiàn)性漸變的方向,top是從上到下、left是從左到右,如果定義成left top,那就是從左上角到右下角。第二個(gè)和第三個(gè)參數分別是起點(diǎn)顏色和終點(diǎn)顏色。你還可以在它們之間插入更多的參數,表示多種顏色的漸變。如圖所示:

根據上面的介紹,我們先來(lái)看一個(gè)簡(jiǎn)單的例子:
HTML:
<div class="example example1"></div>
CSS:
.example { width: 150px; height: 80px; }
(如無(wú)特殊說(shuō)明,我們后面的示例都是應用這一段html和css 的基本代碼)
現在我們給這個(gè)div應用一個(gè)簡(jiǎn)單的漸變樣式:
.example1 { background: -moz-linear-gradient( top,#ccc,#000);}
效果如下:

注:這個(gè)效果暫時(shí)只有在Mozilla內核的瀏覽器下才能正常顯示。
二、線(xiàn)性漸變在Webkit下的應用
語(yǔ)法:
-webkit-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* )//最新發(fā)布書(shū)寫(xiě)語(yǔ)法-webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*) //老式語(yǔ)法書(shū)寫(xiě)規則
參數:-webkit-gradient是webkit引擎對漸變的實(shí)現參數,一共有五個(gè)。第一個(gè)參數表示漸變類(lèi)型(type),可以是linear(線(xiàn)性漸變)或者radial(徑向漸變)。第二個(gè)參數和第三個(gè)參數,都是一對值,分別表示漸變起點(diǎn)和終點(diǎn)。這對值可以用坐標形式表示,也可以用關(guān)鍵值表示,比如 left top(左上角)和left bottom(左下角)。第四個(gè)和第五個(gè)參數,分別是兩個(gè)color-stop函數。color-stop函數接受兩個(gè)參數,第一個(gè)表示漸變的位置,0為起點(diǎn),0.5為中點(diǎn),1為結束點(diǎn);第二個(gè)表示該點(diǎn)的顏色。如圖所示:


我們先來(lái)看一個(gè)老式的寫(xiě)法示例:
background: -webkit-gradient(linear,center top,center bottom,from(#ccc), to(#000));
效果如下所示

接著(zhù)我們在來(lái)看一下新式的寫(xiě)法:
-webkit-linear-gradient(top,#ccc,#000);
這個(gè)效果我就不在貼出來(lái)了,大家在瀏覽器中一看就明白了,他們是否一致的效果。仔細對比,在Mozilla和Webkit下兩者的學(xué)法都基本上一致了,只是其前綴的區別,當然哪一天他們能統一成一樣,對我們來(lái)說(shuō)當然是更好了,那就不用去處理了。將大大節省我們的開(kāi)發(fā)時(shí)間喲。
三、線(xiàn)性漸變在Opera下的應用
語(yǔ)法:
-o-linear-gradient([<point> || <angle>,]? <stop>, <stop> [, <stop>]); /* Opera 11.10+ */
參數:-o-linear-gradient有三個(gè)參數。第一個(gè)參數表示線(xiàn)性漸變的方向,top是從上到下、left是從左到右,如果定義成left top,那就是從左上角到右下角。第二個(gè)和第三個(gè)參數分別是起點(diǎn)顏色和終點(diǎn)顏色。你還可以在它們之間插入更多的參數,表示多種顏色的漸變。(注:Opera支持的版本有限,本例測試都是在Opera11.1版本下,后面不在提示),如圖所示:

示例:
background: -o-linear-gradient(top,#ccc, #000);
效果如圖所示

四、線(xiàn)性漸變在Trident (IE)下的應用
語(yǔ)法:
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依靠濾鏡實(shí)現漸變。startColorstr表示起點(diǎn)的顏色,endColorstr表示終點(diǎn)顏色。GradientType表示漸變類(lèi)型,0為缺省值,表示垂直漸變,1表示水平漸變。如圖所示:

上面我們主要介紹了線(xiàn)性漸變在上述四大核心模塊下的實(shí)現方法,接著(zhù)我們主要針對線(xiàn)性漸變在MOZ、Webkit、Opera三大模塊下實(shí)現各種不同線(xiàn)性漸變實(shí)例:
從上面的語(yǔ)法中我們可以很清楚的知道,要創(chuàng )建一個(gè)線(xiàn)性漸變,我們需要創(chuàng )建一個(gè)起點(diǎn)和一個(gè)漸變方向(或角度),定義一個(gè)起始色:
-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*/
效果如下:

起始點(diǎn)(Starting Point)的工作方式類(lèi)似于background position。您可以設置水平和垂直位置為百分比,或以像素為單位,或在水平方向上可以使用left/center/right,在垂直方向上可以使用top/center/bottom。位置起始于左上角。如果你不指定水平或垂直位置,它將默認為center。其工作方式主要包含:Top → Bottom、Left → Right、bottom → top、right → left等,接著(zhù)我們主要一種一種來(lái)看其實(shí)現的效果:
1、開(kāi)始于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);
效果:

2、始于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);
效果如下:

3、起始于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);
效果如下:

4、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);
效果如下:

5、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);
效果如下:

6、角度(Angle):
正如上面看到的示例,如果您不指定一個(gè)角度,它會(huì )根據起始位置自動(dòng)定義。如果你想更多的控制漸變的方向,您不妨設置角度試試。例如,下面的兩個(gè)漸變具有相同的起點(diǎn)left center,但是加上一個(gè)30度的角度。
沒(méi)有角度的示例代碼:
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);
效果圖如下:


當指定的角度,請記住,它是一個(gè)由水平線(xiàn)與漸變線(xiàn)產(chǎn)生的的角度,逆時(shí)針?lè )较?。因此,使?deg將產(chǎn)生一個(gè)左到右橫向梯度,而90度將創(chuàng )建一個(gè)從底部到頂部的垂直漸變。我來(lái)看看你核心代碼:
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);
我們來(lái)看看各角度的區別
.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);}
效果如下:

除了起始位置和角度,你應該指定起止顏色。起止顏色是沿著(zhù)漸變線(xiàn),將會(huì )在指定位置(以百分比或長(cháng)度設定)含有指定顏色的點(diǎn)。色彩的起止數是無(wú)限的。如果您使用一個(gè)百分比位置,0%代表起點(diǎn)和100%是終點(diǎn),但區域外的值可以被用來(lái)達到預期的效果。 這也是通過(guò)CSS3 Gradient制作漸變的一個(gè)關(guān)鍵所在,其直接影響了你的設計效果,像我們這里的示例都不是完美的效果,只是為了能給大家展示一個(gè)漸變的效果,大家就這樣先用著(zhù)吧。我們接著(zhù)看一下不同的起址色的示例:
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);
效果如下:

如果沒(méi)有指定位置,顏色會(huì )均勻分布。如下面的示例:
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);
效果如下

7、漸變上應用透明─透明度(Transparency):
透明度還支持透明漸變。這對于制作一些特殊的效果是相當有用的,例如,當堆疊多個(gè)背景時(shí)。這里是兩個(gè)背景的結合:一張圖片,一個(gè)白色到透明的線(xiàn)性漸變。我們來(lái)看一個(gè)官網(wǎng)的示例吧:
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);
接著(zhù)看看效果吧

大家可以時(shí)入這里和原圖做一下比較,是不是很神奇呀。如果想體會(huì )的話(huà),快點(diǎn)動(dòng)手跟我一起做吧。
上面我們主要介紹了CSS3中線(xiàn)性漸變,文章一開(kāi)始說(shuō)過(guò)CSS3漸變包含兩個(gè)部分,其一就是我們說(shuō)的線(xiàn)性漸變,其二就是我們接下來(lái)要說(shuō)的徑向漸變。
CSS3的徑向漸變
CSS3的徑向漸變和其線(xiàn)性漸變是很相似的。我們首先來(lái)看其語(yǔ)法:
-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>]*);
(需要特別說(shuō)明一點(diǎn)的是,徑向漸變到目前還不支持Opera的內核瀏覽器,所以我們徑向漸變都是在firefox,safari,chrome底下進(jìn)行測試完成的。)
除了您已經(jīng)在線(xiàn)性漸變中看到的起始位置,方向,和顏色,徑向梯度允許你指定漸變的形狀(圓形或橢圓形)和大?。ㄗ罱?,最近角,最遠端,最遠角,包含或覆蓋 (closest-side, closest-corner, farthest-side, farthest-corner, contain or cover))。 顏色起止(Color stops):就像用線(xiàn)性漸變,你應該沿著(zhù)漸變線(xiàn)定義漸變的起止顏色。下面為了更好的理解其具體的用法,我們主要通過(guò)不同的示例來(lái)對比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%);
效果:

從以上倆個(gè)示例的代碼中發(fā)現,他們起止色想同,但就是示例二定位了些數據,為什么會(huì )造成這么大的區別呢?其實(shí)在徑向漸變中雖然具有相同的起止色,但是在沒(méi)有設置位置時(shí),其默認顏色為均勻間隔,這一點(diǎn)和我們前面的線(xiàn)性漸變是一樣的,但是設置了漸變位置就會(huì )按照漸變位置去漸變,這就是我們示例一和示例的區別之處:雖然圓具有相同的起止顏色,但在示例一為默認的顏色間隔均勻的漸變,而示例二每種顏色都有特定的位置。
示例三
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);
效果

示例三和示例四我們從效果中就可以看出,其形狀不一樣,示例三程圓形而示例四程橢圓形狀,也是就是說(shuō)他們存在形狀上的差異。然而我們在回到兩個(gè)示例的代碼中,顯然在示例三中設置其形狀為circle而在示例四中ellipse,換而言之在徑向漸變中,我們是可以會(huì )漸變設置其形狀的。
示例五
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)指向被用來(lái)定義圓或橢圓大小的點(diǎn)。 示例:橢圓的近邊VS遠角 下面的兩個(gè)橢圓有不同的大小。示例五是由從起始點(diǎn)(center)到近邊的距離設定的,而示例六是由從起始點(diǎn)到遠角的的距離決定的。
示例七:
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遠邊 ,示例七的圓的漸變大小由起始點(diǎn)(center)到近邊的距離決定,而示例八的圓則有起始點(diǎn)到遠邊的距離決定。
示例九:
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);
效果:

示例九和示例十演示了包含圓 。在這里你可以看到示例九的默認圈,同一漸變版本,但是被包含的示例十的圓。
最后我們在來(lái)看兩個(gè)實(shí)例一個(gè)是應用了中心定位和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);
效果如下:

下面這個(gè)實(shí)例應用的是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);
效果:

到此關(guān)于CSS3的兩種漸變方式我們都介紹完了。在浪費大家一點(diǎn)時(shí)間,我們看看CSS的重復漸變的應用。
如果您想重復一個(gè)漸變,您可以使用-moz-repeating-linear-gradient和-moz-repeating-radial-gradient。 在下面的例子,每個(gè)實(shí)例都指定了兩個(gè)起止顏色,并無(wú)限重復。
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);
效果:


有關(guān)于CSS3漸變的東西就完了,大家看完了肯定會(huì )想,他主要用在哪些方面呢?這個(gè)說(shuō)起來(lái)就多了,最簡(jiǎn)單的就是制作背景,我們還可以應用其制作一些漂亮的按鈕,還可以用他來(lái)制作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));}
效果:

不錯的效果吧,當然感興趣的朋友可以到這里學(xué)習制作更多的不同效果。
到此我們關(guān)于CSS3─Gradient就介紹到這里了,如果想學(xué)習制作漸變效果的,大家可以看看W3CPLUS首頁(yè)的彩色菜單,我采用的就是CSS3 Gradient實(shí)現的,當然大家還可以去看看這個(gè)DEMO的效果。希望能給大家對學(xué)習CSS3有點(diǎn)幫助,如果感興趣的朋友請觀(guān)注W3CPLUS,從今天開(kāi)始我會(huì )系統的介紹一些CSS3的應用,希望大家能喜歡,更希望能跟大家一起探討學(xué)習CSS3的相關(guān)技術(shù)。
今天為之碰到一個(gè)IE9下的漸變色結合圓角制作的bug。換句話(huà)說(shuō):在IE9下你使用漸變色而且還需要制作圓角時(shí),這個(gè)bug就出現了,在IE9下背景色不能完全切完。經(jīng)過(guò)他仔細研究,借助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*/
下面列出本站關(guān)于CSS3的相關(guān)文章:
下一節: 《CSS3 RGBA》
第三節: 《CSS3的圓角border-radius》
第四節:《CSS3的文字陰影text-shadow》
第五節:《CSS3 Box-shadow》
第六節:《CSS3 Transform》
第七節:《CSS3 Transition》
第八節:《CSS3 Animation》
如需轉載請注明出處:W3CPLUS
聯(lián)系客服