CSS3常用的幾種顏色漸變模式總結(jié)
一、線性漸變:linear-gradient
語(yǔ)法:
<linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner] ,]? <color-start>[, <color-end>]+)
<side-or-corner> = [left | right] || [top | bottom]
<color-start|end> = <color>[ <length>|<percentage>]?
下述值用來(lái)表示漸變的方向,可以使用角度或者關(guān)鍵字來(lái)設(shè)置:
<angle>:用角度值指定漸變的方向(或角度)。
to left:設(shè)置漸變?yōu)閺挠业阶?。相?dāng)于: 270deg
to right:設(shè)置漸變從左到右。相當(dāng)于: 90deg
to top:設(shè)置漸變從下到上。相當(dāng)于: 0deg
to bottom:設(shè)置漸變從上到下。相當(dāng)于: 180deg。這是默認(rèn)值,等同于留空不寫(xiě)。
<color-start|end> 用于指定漸變的起止顏色:
<color>:指定顏色。
<length>:用長(zhǎng)度值指定起止色位置。不允許負(fù)值
<percentage>:用百分比指定起止色位置。
示例:

div {
width: 200px;
height: 100px;
margin: 10px 5px;
border: 1px solid #ddd000;
}
#LinearStartToEnd {
float:left;
background: linear-gradient(#ff0000, #00ff00);
}
#LinearPercentage {
float:left;
background: linear-gradient(#0000ff, #ff0000 52%, #00ff00);
}
#LinearAnglePercentage {
float:left;
background: linear-gradient(90deg, #ff0000 20%, #00ff00 50%, #000000 80%);
}
#LinearAngle {
float:left;
background: linear-gradient(30deg, #ffff00 30%, #ff0000, #00ff00);
}
#LinearTopRight {
float:left;
background: linear-gradient(to right top, #00ff00, #ff0000 50%, #0000ff);
}
二、徑向漸變:radial-gradient
語(yǔ)法:
<position> = [ <length>① | <percentage>① | left | center① | right ]? [ <length>② | <percentage>② | top | center② | bottom ]?
<shape> = circle | ellipse
<size> = <extent-keyword>|[<circle-size>||<ellipse-size>]
<extent-keyword> = closest-side | closest-corner | farthest-side | farthest-corner
<circle-size> = <length>
<ellipse-size> = [ <length>| <percentage> ]{2}
<shape-size> = <length>| <percentage>
<radial-gradient> = radial-gradient([ [ <shape>|| <size> ] [ at <position> ]? , | at <position> , ]?<color-start>[[ , <color-end>]]+)
<position> 確定圓心的位置。如果提供2個(gè)參數(shù),第一個(gè)表示橫坐標(biāo),第二個(gè)表示縱坐標(biāo);如果只提供一個(gè),第二值默認(rèn)為50%,即center
<length>①:用長(zhǎng)度值指定徑向漸變圓心的橫坐標(biāo)值??梢詾樨?fù)值。
<percentage>①:用百分比指定徑向漸變圓心的橫坐標(biāo)值??梢詾樨?fù)值。
<length>②:用長(zhǎng)度值指定徑向漸變圓心的縱坐標(biāo)值??梢詾樨?fù)值。
<percentage>②:用百分比指定徑向漸變圓心的縱坐標(biāo)值??梢詾樨?fù)值。
center①:設(shè)置中間為徑向漸變圓心的橫坐標(biāo)值。
center②:設(shè)置中間為徑向漸變圓心的縱坐標(biāo)值。
left:設(shè)置左邊為徑向漸變圓心的橫坐標(biāo)值。
right:設(shè)置右邊為徑向漸變圓心的橫坐標(biāo)值。
top:設(shè)置頂部為徑向漸變圓心的縱坐標(biāo)值。
bottom:設(shè)置底部為徑向漸變圓心的縱坐標(biāo)值。
<shape> 確定圓的類型
circle:指定圓形的徑向漸變
ellipse:指定橢圓形的徑向漸變。
<extent-keyword> circle | ellipse 都接受該值作為 size。
closest-side:指定徑向漸變的半徑長(zhǎng)度為從圓心到離圓心最近的邊。
closest-corner:指定徑向漸變的半徑長(zhǎng)度為從圓心到離圓心最近的角。
farthest-side:指定徑向漸變的半徑長(zhǎng)度為從圓心到離圓心最遠(yuǎn)的邊。
farthest-corner:指定徑向漸變的半徑長(zhǎng)度為從圓心到離圓心最遠(yuǎn)的角。
<circle-size> circle 接受該值作為 size。
<length>:用長(zhǎng)度值指定正圓徑向漸變的半徑長(zhǎng)度。不允許負(fù)值。
<ellipse-size> ellipse 接受該值作為 size。
<length>:用長(zhǎng)度值指定橢圓徑向漸變的橫向或縱向半徑長(zhǎng)度。不允許負(fù)值。
<percentage>:用百分比指定橢圓徑向漸變的橫向或縱向半徑長(zhǎng)度。不允許負(fù)值。
示例:

#RadialCenterCircle {
float:left;
background: radial-gradient(circle at center, #ff0000, #ffff00, #00ffff);
}
#RadialClosestSide {
float:left;
background: radial-gradient(circle closest-side, #ff0000, #00ff00, #ffff00);
}
#RadialFarthestSide {
float:left;
background: radial-gradient(farthest-side, #ff0000 20%, #ffff00 60%, #00ff00 80%);
}
#RadialRightTop {
float:left;
background: radial-gradient(at right top, #ff0000, #ffff00, #00ff00);
}
#RadialRadiusCenter {
float:left;
background: radial-gradient(farthest-side at top right, #ff0000, #ffff00, #01fefe);
}
#RadialGroup {
float:left;
background:
radial-gradient(farthest-side at top right, #ff0000, #ffff00, #009f00, transparent),
radial-gradient(60px at top left, #ff0000, #ffff00, #00ff0e);
}
三、重復(fù)的線性漸變:repeating-linear-gradient
語(yǔ)法和參數(shù)類似線性漸變,這里不在贅述。詳情請(qǐng)參考CSS手冊(cè)。
示例:
#RepeatingLinearPercentage{
float:left;
background: repeating-linear-gradient(#ff0000, #00ff00 10%, #000000 15%);
}
#RepeatingLinearRight {
float:left;
background: repeating-linear-gradient(to right, #ff0000, #00ff00 10%, #000000 15%);
}
#RepeatingLinearAngle {
float:left;
background: repeating-linear-gradient(45deg, #ff0000, #00ff00 10%, #0000ff 15%);
}
#RepeatingLinearBottomLeft {
float:left;
background: repeating-linear-gradient(to bottom left, #00ffff, #ff0000 10%, #00ff00 15%);
}
四、重復(fù)的徑向漸變:repeating-radial-gradient
語(yǔ)法和參數(shù)類似徑向漸變,這里不在贅述。詳情請(qǐng)參考CSS手冊(cè)。
示例:

#RepeatingRadialCircle {
float:left;
background: repeating-radial-gradient(circle, #ff0000 0, #00ff00 10%, #0000ff 15%);
}
#RepeatingRadialTopLeft {
float:left;
background: repeating-radial-gradient(at top left, #ff0000, #00ff00 10%, #0de0f0 15%, #ffff00 20%, #000000 25%);
}
#RepeatingRadialClosestCorner {
float:left;
background: repeating-radial-gradient(circle closest-corner at 20px 50px, #00ff00, #ff0000 10%, #00ffff 20%, #ffff00 30%, #ff00ff 40%);
}
完整的例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>ImageCSS3</title>
<style>
div {
width: 200px;
height: 100px;
margin: 10px 5px;
border: 1px solid #ddd000;
}
#LinearStartToEnd {
float:left;
background: linear-gradient(#ff0000, #00ff00);
}
#LinearPercentage {
float:left;
background: linear-gradient(#0000ff, #ff0000 52%, #00ff00);
}
#LinearAnglePercentage {
float:left;
background: linear-gradient(90deg, #ff0000 20%, #00ff00 50%, #000000 80%);
}
#LinearAngle {
float:left;
background: linear-gradient(30deg, #ffff00 30%, #ff0000, #00ff00);
}
#LinearTopRight {
float:left;
background: linear-gradient(to right top, #00ff00, #ff0000 50%, #0000ff);
}
#RadialCenterCircle {
float:left;
background: radial-gradient(circle at center, #ff0000, #ffff00, #00ffff);
}
#RadialClosestSide {
float:left;
background: radial-gradient(circle closest-side, #ff0000, #00ff00, #ffff00);
}
#RadialFarthestSide {
float:left;
background: radial-gradient(farthest-side, #ff0000 20%, #ffff00 60%, #00ff00 80%);
}
#RadialRightTop {
float:left;
background: radial-gradient(at right top, #ff0000, #ffff00, #00ff00);
}
#RadialRadiusCenter {
float:left;
background: radial-gradient(farthest-side at top right, #ff0000, #ffff00, #01fefe);
}
#RadialGroup {
float:left;
background:
radial-gradient(farthest-side at top right, #ff0000, #ffff00, #009f00, transparent),
radial-gradient(60px at top left, #ff0000, #ffff00, #00ff0e);
}
#RepeatingLinearPercentage{
float:left;
background: repeating-linear-gradient(#ff0000, #00ff00 10%, #000000 15%);
}
#RepeatingLinearRight {
float:left;
background: repeating-linear-gradient(to right, #ff0000, #00ff00 10%, #000000 15%);
}
#RepeatingLinearAngle {
float:left;
background: repeating-linear-gradient(45deg, #ff0000, #00ff00 10%, #0000ff 15%);
}
#RepeatingLinearBottomLeft {
float:left;
background: repeating-linear-gradient(to bottom left, #00ffff, #ff0000 10%, #00ff00 15%);
}
#RepeatingRadialCircle {
float:left;
background: repeating-radial-gradient(circle, #ff0000 0, #00ff00 10%, #0000ff 15%);
}
#RepeatingRadialTopLeft {
float:left;
background: repeating-radial-gradient(at top left, #ff0000, #00ff00 10%, #0de0f0 15%, #ffff00 20%, #000000 25%);
}
#RepeatingRadialClosestCorner {
float:left;
background: repeating-radial-gradient(circle closest-corner at 20px 50px, #00ff00, #ff0000 10%, #00ffff 20%, #ffff00 30%, #ff00ff 40%);
}
</style>
</head>
<body>
<!-- 指定線性漸變起止色 -->
<div id="LinearStartToEnd"></div>
<!-- 指定線性漸變起止色位置 -->
<div id="LinearPercentage"></div>
<!-- 指定線性漸變顏色漸變方向和起止色位置 -->
<div id="LinearAnglePercentage"></div>
<!-- 指定線性漸變顏色漸變方向 -->
<div id="LinearAngle"></div>
<!-- 設(shè)置漸變從右上到左下 -->
<div id="LinearTopRight"></div>
<!-- 浮動(dòng)Div換行,此處指定Div寬高和邊界,是為了覆蓋前面定義的Div統(tǒng)一CSS樣式,
可以嘗試去掉指定的Div寬高和邊界,看看效果 -->
<div style="width:0; height:0; border:none; clear:both"></div>
<!-- 以中心點(diǎn)為圓心的圓形徑向漸變 -->
<div id="RadialCenterCircle"></div>
<!-- 徑向漸變半徑長(zhǎng)度:圓心到離圓心最近邊的長(zhǎng)度 -->
<div id="RadialClosestSide"></div>
<!-- 徑向漸變半徑長(zhǎng)度:圓心到離圓心最遠(yuǎn)邊的長(zhǎng)度 -->
<div id="RadialFarthestSide"></div>
<!-- 左邊為徑向漸變圓心的橫坐標(biāo)值,頂邊為徑向漸變圓心的縱坐標(biāo)值 -->
<div id="RadialRightTop"></div>
<!-- 同時(shí)指定徑向漸變的圓心和半徑 -->
<div id="RadialRadiusCenter"></div>
<!-- 徑向漸變組合 -->
<div id="RadialGroup"></div>
<div style="width:0; height:0; border:none; clear:both"></div>
<!-- 指定顏色起止色位置的重復(fù)線性漸變 -->
<div id="RepeatingLinearPercentage"></div>
<!-- 從左到右漸變的重復(fù)線性漸變 -->
<div id="RepeatingLinearRight"></div>
<!-- 漸變角度為45度的重復(fù)線性漸變 -->
<div id="RepeatingLinearAngle"></div>
<!-- 從左下到右上的重復(fù)線性漸變 -->
<div id="RepeatingLinearBottomLeft"></div>
<div style="width:0; height:0; border:none; clear:both"></div>
<!-- 圓形重復(fù)徑向漸變 -->
<div id="RepeatingRadialCircle"></div>
<!-- 漸變方向?yàn)樽笊系接蚁碌闹貜?fù)徑向漸變 -->
<div id="RepeatingRadialTopLeft"></div>
<!-- 重復(fù)徑向漸變:漸變半徑長(zhǎng)度為從圓心到離圓心最近的角的距離 -->
<div id="RepeatingRadialClosestCorner"></div>
</body>
</html>
總結(jié)
以上就是這篇文章文章的全部?jī)?nèi)容,本文整理了現(xiàn)在常用的幾種Css3實(shí)現(xiàn)漸變顏色的方法,希望對(duì)大家的學(xué)習(xí)或者工作能有所幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
- 這篇文章給大家分享了如何利用CSS3把圖片變成灰色模式的效果,實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,有需要的朋友們可以參考借鑒。2016-09-06
- 這篇文章主要以模擬漸變色條實(shí)例,針對(duì)CSS3 HSLA色彩模式進(jìn)行介紹,使用HSLA色彩模式,可以設(shè)計(jì)不同的透明效果,感興趣的小伙伴們可以參考一下2016-04-26
- 這篇文章主要以設(shè)計(jì)帶有陰影邊框的表單為例,為大家介紹了CSS3 RGBA色彩模式使用方法,感興趣的小伙伴們可以參考一下2016-04-26
- CSS3色彩模式有哪些?這篇文章主要介紹了CSS3色彩模式是什么?告訴大家HSL色彩模式的定義、語(yǔ)法,感興趣的小伙伴們可以參考一下2016-04-26

使用CSS實(shí)現(xiàn)黑暗模式和高亮模式的切換功能
這兩個(gè)概念是來(lái)源于 macOS系統(tǒng) ,該系統(tǒng)為用戶提供兩個(gè)主題皮膚,即 高亮 和 暗色 系的皮膚。接下來(lái)通過(guò)本文給大家分享使用CSS實(shí)現(xiàn)黑暗模式和高亮模式的切換功能,感興趣的2019-06-14


