這是關於漸變的第二篇文章徑向漸變,第一篇文章是線性漸變,有興趣的能夠看這裏css
線性漸變是沿着一條直線漸變,而徑向漸變則是沿着橢圓或者圓進行漸變。其標準語法以下:html
radial-gradient(position, shape, size, color-stop);
position,指明徑向漸變的橢圓或者圓心的位置,支持的值有:left
、right
、top
、bottom
,也能夠指定px或者百分比,默認是圖形的正中心。相應的對應關係以下:前端
top left | at 0% 0% |
---|---|
top center | at 0% 50% |
top right | at 0% 100% |
right center | at 100% 50% |
right bottom | at 100% 100% |
bottom center | at 100% 50% |
left bottom | at 100% 0% |
left center | at 0% 100% |
center center | at 50% 50% |
shape,指明徑向漸變的形狀,能夠爲circle
或者ellipse
,從字面意思可知,circle
表示圓形,ellipse
表示橢圓形。默認爲ellipse
。css3
size,表示漸變的尺寸,即漸變到哪裏中止,除了支持百分比以及像素,還支持如下四個關鍵字,詳細以下:segmentfault
關鍵字 | 描述 |
---|---|
closest-side | 漸變中心距離容器最近的邊 做爲終止位置。 |
closest-corner | 漸變中心距離容器最近的角 做爲終止位置。 |
farthest-side | 漸變中心距離容器最遠的邊 做爲終止位置。 |
farthest-corner(默認) | 漸變中心距離容器最遠的角 做爲終止位置。 |
size和position能夠用at鏈接,例如30px 40px at center
,表示以元素中心點爲圓心,30px爲水平半徑,40px爲垂直半徑的橢圓型漸變。微信
color-stop,與線性漸變的用法相同,這裏就不在贅述了。ide
<div class="easy"></div>
.easy{ width: 200px; height: 100px; background: radial-gradient(yellow, red); }
以中心(50%, 50%)爲起點,到最遠角(farthest-corner),從red到green、blue的均勻漸變,效果以下圖:
wordpress
<div class="easy2"></div>
.easy2{ width: 200px; height: 100px; background: radial-gradient(yellow 5%, red 15%, blue 60%); }
<div class="easy3"></div> <div class="easy4"></div>
.easy3{ display: inline-block; width: 200px; height: 100px; border: 1px solid deeppink; background: radial-gradient(circle, yellow 5%, red 15%, white 40%); } .easy4{ display: inline-block; width: 200px; height: 100px; border: 1px solid deeppink; background: radial-gradient(ellipse, yellow 5%, red 25%, white 40%); }
30px 50px
指明瞭水平方向的漸變尺寸爲30px
,垂直方向上的漸變尺寸爲50px
,同時漸變的中心點爲center
或者left
。<div class="box box1"></div> <div class="box box2"></div> <div class="box box3"></div> <div class="box box4"></div>
.box{ display: inline-block; width: 200px; height: 100px; } .box1{ background: radial-gradient(30px 50px at center, yellow, red); } .box2{ background: radial-gradient(50px 50px at center, yellow, red); } .box3{ background: radial-gradient(50px 30px at center, yellow, red); } .box4{ background: radial-gradient(20% 50% at left, yellow, red); }
<div class="box box10"></div> <div class="box box11"></div> <div class="box box12"></div> <div class="box box13"></div>
.box{ display: inline-block; width: 200px; height: 100px; } .box10{ background: radial-gradient(closest-side circle at 50% 75%, yellow, red); } .box11{ background: radial-gradient(closest-corner circle at 50% 75%, yellow, red); } .box12{ background: radial-gradient(farthest-side circle at 50% 75%, yellow, red); } .box13{ background: radial-gradient(farthest-corner circle at 50% 75%, yellow, red); }
徑向漸變的本質也是背景圖,利用背景的可疊加性,能夠實現酷炫的效果,好比本例中的相似眼睛的效果圖。spa
<div class="easy5"></div>
.easy5{ display: inline-block; width: 200px; height: 100px; background: radial-gradient(100px 50px ellipse, transparent 40px, red 60px, transparent 61px), radial-gradient(10px circle, #000, #000 10px, transparent 11px); }
利用background-size
屬性控制背景圖的大小以及其自己的重複性質,咱們還能夠實現其的一些效果。3d
<div class="easy6"></div>
.easy6{ display: inline-block; width: 100px; height: 200px; background: radial-gradient(5px 10px ellipse, transparent 4px, yellow 5px, red 6px, transparent 7px), radial-gradient(3px circle, red, red 3px, transparent 4px); background-size: 25px; }
<div class="easy7"></div>
.easy7{ width: 200px; height: 100px; background: #cd0000; position: relative; } .easy7:after{ content: ''; position: absolute; height: 10px; left: 0; right: 0; bottom: -10px; background: radial-gradient(20px 15px ellipse at top, #cd0000 10px, transparent 11px); background-size: 20px 15px; }
除了徑向漸變radial-gradient
,css3中還支持重複徑向漸變reapting-radial-gradient
。
若是想對提升本身的csss水平,推薦《CSS揭祕》,很不錯額。
喜歡的話,麻煩點個贊。感謝閱讀。
CSS3 radial-gradient徑向漸變語法及輔助理解案例10則
碰見了,不妨關注下個人微信公衆號「前端Talkking」