日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

css3 背景渐变

發布時間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 css3 背景渐变 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本來想先瞎扯些什么,然后又不知道講什么的好,那就直接進入正題吧。

參考資料:

Using CSS gradients??(以及該頁面內的大部分鏈接頁面的資料)

首先區分下,平常給的純色background,指的是background-color屬性,而漸變色所指向的是background-image屬性,是作為背景圖像處理的。

從漸變的形式分為2種:線性漸變(直線擴散)和徑向漸變(從圓心擴散)。

線性漸變: linear-gradient | repeating-linear-gradient

徑向漸變: radial-gradient | repeating-radial-gradient

線性漸變

語法格式

linear-gradient( [ <angle/*角度*/> | to <side-or-corner>/*方向*/ ,]? <color-stop/*漸變開始的顏色*/> [, <color-stop>]+/*漸變結束的顏色,開始-結束的區間內包含漸變涉及到的顏色列表*/ ) <side-or-corner> = [left | right] || [top | bottom] <color-stop> = <color> [ <percentage/*當前漸變色所占百分比*/> | <length/*當前漸變色起始位置,也代表上一個顏色漸變結束的位置*/> ]

使用代碼及效果圖

<div class="test"></div>

兩種顏色的漸變

<style> /*此例由黑色漸變至紅色*/.test{width:300px;height: 100px;background-image: linear-gradient(black, red); /*默認是從上到下的漸變*//*background-image: linear-gradient(to top, black, red);*/ /*從下到上的漸變*//*background-image: linear-gradient(to right, black, red);*/ /*從左到右的漸變*//*background-image: linear-gradient(to left, black, red);*/ /*從右到左的漸變*/} </style>

效果圖如下:
?

三種及多種顏色的漸變

<style> /*此例由黑色漸變至紅色再至黃色*/.test{width:300px;height: 100px;background-image: linear-gradient(black, red, yellow); /*從上到下*//*background-image: linear-gradient(to top, black, red, yellow);*/ /*從下到上*//*background-image: linear-gradient(to right, black, red, yellow);*/ /*從左到右*//*background-image: linear-gradient(to left, black, red, yellow);*/ /*從右到左*/}/*... 按此規則依次加顏色列表,實現多色漸變*/ </style>

效果圖如下:

漸變距離的控制

<style>.test{width:300px;height: 100px;background-image: linear-gradient(to right, black 5px, red 60px, yellow 100px, purple 300px);} </style>

效果圖如下:

給漸變色加了位置值所代表的含義:

1. div[class="test"]背景色執行從左到右的漸變

2. 0px-5px為黑色

3. 5px-60px為黑色向紅色的漸變

4. 60px-100px為紅色向黃色的漸變

5. 100px-300px為黃色向紫色的漸變

每兩種顏色之間的漸變的距離為位置差。

如果后一個顏色的起始位置的值小于前一個顏色的起始位置的值,則這兩種顏色的漸變距離為0,變成直接的顏色變化。
最后一個顏色可不設置起始位置的值,默認漸變至總長度(這里指div寬度)的末尾。如果最后一個顏色起始位置的值小于總長度的值,則從該值開始至總長度的末尾由該顏色值純色填充。

使用百分比:

<style>.test{width:300px;height: 100px;background-image: linear-gradient(to right, black 10%, red 30%, yellow 50%, purple 100%);} </style>

解釋同上。

不同角度的漸變

以上案例都是以<side-or-corner>決定漸變方向,使用<angle>便可以根據自己喜好定義方向了。

在webkit內核的deg

?

正常模式(指的是沒規定瀏覽器內核的樣式)deg?

angle的角度值與上圖的角度值所指方向一致。

<style> /*這里以標準的為例*/.test{width:300px;height: 100px;background-image: linear-gradient(0deg, black, red); /*從下至上*//*background-image: linear-gradient(45deg, black, red);*/ /*從左下角至右上角*//*background-image: linear-gradient(90deg, black, red);*/ /*從左至右*//*background-image: linear-gradient(135deg, black, red);*/ /*從左上角至右下角*//*background-image: linear-gradient(180deg, black, red);*/ /*從上至下*//*background-image: linear-gradient(225deg, black, red);*/ /*從右上角至左下角*//*background-image: linear-gradient(270deg, black, red);*/ /*從右至左*//*background-image: linear-gradient(315deg, black, red);*/ /*從右下角至左上角*/} </style>

徑向漸變

語法格式:

radial-gradient( [ circle/**/ || <length>/*半徑大小*/ ] [ at <position>/*圓心所在位置*/ ]? ,| [ ellipse/*橢圓*/ || [<length> | <percentage> ]{2}]/*百分比*/ [ at <position>/*圓心所在位置*/ ]? ,| [ [ circle | ellipse ]/*圓or橢圓*/ || <extent-keyword>/*橢圓離(最近,最遠)邊或角的距離*/ ] [ at <position>/*圓心所在位置*/ ]? ,| at <position> ,<color-stop> [ , <color-stop> ]+/*漸變顏色列表及位置*/ ) <extent-keyword> = closest-corner | closest-side | farthest-corner | farthest-side <color-stop> = <color> [ <percentage> | <length> ]

使用代碼及效果圖

<div class="test"></div>

<style>.test{width: 300px;height: 100px;background-image: radial-gradient(50px at 50% 50% , white 0%, red 50%, purple 99%, transparent 99%);} </style>

以上代碼的圓心在元素的中心點(50% 50%),半徑為50px,圓心白色,圓心至半徑50%處由白色漸變至紅色,又從半徑50%處至99%處紅色漸變至紫色,從半徑長度的99%至99%由紫色漸變透明。

注意:transparent 99%(或0%-99%)是為圓規定在99%之后至100%的背景色為透明,如果除去這個設置,那剩余部分將會被前一個背景色填充,當然,現在這個值在這里是99%,在其他地方也可以是其他值,根據上一個顏色的相對圓心的距離確定范圍。

橢圓

<style>.test{width: 300px;height: 100px;border: 1px solid black;background-image: radial-gradient( ellipse farthest-corner at 30% 30% , white 0%, red 20%, purple 30%, transparent 30%);} </style>

首先,選擇圓的類型是ellipse,然后選擇extent-keyword來確定橢圓的規格(farthest-corner),然后at position確定圓心所在位置(30% 30%),之后日常的漸變顏色列表及漸變范圍。

效果圖如下:

分析下extent-keyword:

closest-side: 以靠近圓心的最近的一條邊為基準來規定橢圓的大小。

closest-corner:以靠近圓心的最近的一個角(橢圓所在元素的角)為基準來規定橢圓的大小。

farthest-side:以靠近圓心的最遠的一條邊為基準來規定橢圓的大小。

farthest-corner:以靠近圓心的最遠的一個角(橢圓所在元素的角)為基準來規定橢圓的大小。

以上圖為例,規定的是farthest-corner,這時候最遠的角是div的點D所在的角(最近的角是點A所在位置的角,最近的邊是AB邊,最遠的邊是BD邊),且橢圓為30%的規格,圓心是點O,OF:OD = 3:10,所謂的30%便是這么得來的(當然,也可以是像素規定)。

...其余規則以此類推...

漸變的repeat

線性repeat

語法格式:

repeating-linear-gradient( [ <angle>/*角度*/ | to <side-or-corner>/*方向*/ ,]? <color-stop> [, <color-stop>]+/*漸變顏色列表*/ ) <side-or-corner> = [left | right] || [top | bottom] <color-stop> = <color> [ <percentage> | <length> ]

案例:

<style>.test{width: 300px;height: 100px;border: 1px solid black;background-image: repeating-linear-gradient(180deg, transparent, transparent 5px, black 5px, black 10px),repeating-linear-gradient(90deg, transparent, transparent 5px, black 5px, black 10px);} </style>

效果圖如下:

repeating-linear-gradient也可重復使用

<style>.test{width: 300px;height: 100px;border: 1px solid black;background-image: repeating-linear-gradient(180deg, transparent, transparent 5px, black 5px, black 6px),repeating-linear-gradient(90deg, transparent, transparent 5px, black 5px, black 6px);} </style>

效果圖如下:

角度和方向可根據各自需求選擇。

當然,有了線性的repeat,徑向也不會示弱,來看看徑向的repeat的吧。

語法格式:

repeating-radial-gradient( [[ circle/**/ || <length>/*半徑*/ ] [at <position>]?/*位置*/ , | [ ellipse/*橢圓*/ || [<length> | <percentage> ]{2}] [at <position>]? , |[[ circle | ellipse ] || <extent-keyword> ] [at <position>]? , |at <position> , <color-stop> [ , <color-stop> ]+ ) <extent-keyword> = closest-corner | closest-side | farthest-corner | farthest-side <color-stop> = <color> [ <percentage> | <length> ]

這個是圓的:

<style>.test{width: 300px;height: 100px;border: 1px solid black;background-image: repeating-radial-gradient(circle, black, black 5px, white 5px, white 10px);} </style>

效果圖如下:

這個是橢圓的:

<style>.test{width: 300px;height: 100px;border: 1px solid black;background-image: repeating-radial-gradient(ellipse, black, black 5px, white 5px, white 10px);} </style>

效果圖如下:

暫時就寫這些吧,具體的運用看各自設計圖給的是什么樣的~ 也是懶得每個效果都切圖... ?

同時,歡迎大家共同交流討論各種技術問題~

總結

以上是生活随笔為你收集整理的css3 背景渐变的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。