http://www.javashuo.com/article/p-uimdtifv-mq.htmlcss
對於linear-gradient()我學習的時候,查了不少資料,可是發現不論是網上仍是一些書籍,都沒有將這個屬性的運用講得明白,清楚,對此,我寫了這篇博客,雖然不能保證每一位讀者都可以看懂,可是也但願這篇博客能爲你提供一些幫助,若有問題,請在博客中提出,謝謝。html
首先給你們講的就是兼容性,在IE瀏覽器中這個屬性的設置是不兼容的,固然在IE瀏覽器中也能夠實現相似的效果,那邊是濾鏡(fliter)的做用了.其餘的不一樣的瀏覽器也是有不一樣的,好比chrome通常要加-webkit-前綴,如:-webkit-linear-gradient,好比opera就是-o-linear-gradient。web
linear-gradient是屬於CSS3中Gradient中的兩個屬性一個,這兩個屬性分別爲linear-gradient(線性漸變)和radial-gradient(徑性漸變),其中linear-gradient線性漸變呈現線性變化,你們一看名稱就能夠知道這至關因而直線變化,好比充左上角到右下角的變化,或者從上到下,而radial-gradient徑性漸變呈現徑性變化,這即是你們常常見到的圓圈漸變效果,從圖像的中間向四周進行變化,像是你們仍塊石頭到河裏蕩起的漣漪同樣。而本片博客則是講解linear-gradient,固然,linear-gradient和radial-gradient是相通的,他的使用方法同樣,則是呈現的效果不一樣而已。chrome
以下是簡單的linear-gradient的使用瀏覽器
代碼:學習
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>linear-gradient</title>
<style type="text/css">
*{margin:0;padding:0;}
.posDir{margin:100px auto;}
.linearBar{width:100px;height:100px;border:1px solid #ccc;
background-image:linear-gradient(45deg, #000,#fff);
/*********************************偏向角度,起始點顏色,終止點顏色***************/
}
</style>
</head>
<body>
<div class="linearBar posDir"></div>
</body>
</html>spa
效果:.net
這裏提到了background-image:對這個屬性進行linear-gradient,簡單的說這個linear-gradient設置是針對圖片的,因此必須是放圖片的屬性才能運用這個linear-gradient進行設置.htm
除了以上的角度使用(40deg),除此以外,還有提供的一些相似於C語言中的常量的東西,以下:blog
linear-gradient(left bottom, #000, #fff);
這個用來代替上面background-image中linear-gradient會產生同樣的效果。
其中,第一個選項能夠是top, left, bottom, center, right.
以上是對於最多見的兩種顏色的使用,可是這並不能知足咱們的需求,
因此多種顏色的運用是必不可少的,接下來就是多種顏色的講解。
background-image:linear-gradient(40deg, #99CC33, #FF6666,#336699,#FF0033);
將代碼中的background-image改成如上代碼,會呈現以下效果:
如此,這效果,是#99CC33, #FF6666,#336699,#FF0033均勻分佈產生的結果,天然默認是均勻的,那麼天然也存在不均勻的,這就須要咱們本身設置了,這也是網上資料坑爹的地方,他們沒有對這一屬性的使用進行簡單明瞭的講解,因此我來插一腳,寫一個:
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
你們看着這個代碼可能會有點迷糊,這是什麼,寫得也太長了,可是我想說的是,這個東西基本就是不均勻自主控制漸變的一個典型例子,首先,你們要明確一個概念,就是第一個rgba(255,255,255,.15) 25%,說的是從左下角開始起到25%爲rgba(255,255,255,.15),這裏默認隱藏了其實點的設定,而後transparent 25%到50%是透明的(transparent),而後就是25%到75%爲rgba(255,255,255,.15)這個顏色,接着就是從75%到100%爲transparent,這裏又省略了一個100%他是默認值,這代碼直接使用時沒有什麼效果的,他必須有背景顏色作陪襯。
我加了一行這個:background-color:#33CC99;呈現的效果以下:
如此即是有一個運用,那就是進程條,當咱們將這個東西運用到實際的時候,會發現,這個東西造成的東西如此美觀,代碼以下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>linear-gradient</title>
<style type="text/css">
*{margin:0;padding:0;font-family:"微軟雅黑";}
.progress{margin:100px auto;width:80%;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);border-radius:4px;
height:20px;overflow:hidden;background-color: #f5f5f5;}
.progress-bar{float:left;width:0;height:100%;line-height:20px;color:#fff;text-align:center;
background-color: #5cb85c;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);}
.progress-bar-striped{width:100px;height:100px;border:1px solid #ccc;
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-size:40px 40px;
}
</style>
</head>
<body>
<div class="progress">
<div class="progress-bar progress-bar-striped" style="width:60%">60%</div>
</div>
</body>
</html>
效果以下:
如上的效果中的間隔式的波浪即是漸變的效果,是否是很是的美觀好看,此中還有個background-size這個設置,這是爲了設置漸變圖片大小,固然你們仍是會疑惑,爲何會出現這樣的效果,其中還有個默認的屬性background-image:repeat重複,咱們設置的圖片只有40px, 40px這樣只會產生一個圖片,只有進行重複才能造成上面的效果,也許你們會疑惑,爲何要設成40px 40px進程條的高度至於20px,可不能夠寫成20px 20px,答案能夠告訴你們,確定能夠,可是並不美觀,你們能夠思考思考。