CSS3径向渐变

简介: 上次说到CSS3中的线性渐变,表面上看起来似乎有些复杂,但是逐条分解下来其实也没有那么难理解,总结下来无外乎就三点:颜色、方向和位置。那么今天所要讲到的径向渐变相对来说会更复杂一些,不过没有关系,我们同样从最简单的开始说起。

上次说到CSS3中的线性渐变,表面上看起来似乎有些复杂,但是逐条分解下来其实也没有那么难理解,总结下来无外乎就三点:颜色、方向和位置。那么今天所要讲到的径向渐变相对来说会更复杂一些,不过没有关系,我们同样从最简单的开始说起。

在开始之前,同样先来看看今天的主角: radial-gradient()

语法:

<radial-gradient> = radial-gradient([ [<shape> || <size>] [ at <position> ]? , | at <position>, ]?<color-stop>[ ,<color-stop>]+)
// 圆心位置
<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>
// 渐变颜色及颜色位置
<color-stop> = <color> [ <length> | <percentage> ]?

以上总结下来就是,radial-gradient() 参数的组成部分主要包括五大部分:形状、大小、圆心位置、颜色和颜色位置

接下来我将以具体实例对这五大部分逐一进行讲解。首先,定义一个200*150的矩形:

width: 200px; height: 150px;

一、传入两个或多个颜色参数

同样以红色到黄色渐变为例:

background: radial-gradient(#f00,#ff0);

显示效果很简单,就是一个以矩形中心点为圆心、矩形宽高为横纵向直径、颜色由红到黄向外的渐变:

图一

当然,与线性渐变类似的,同样可以传入更多的颜色参数,例如:

background: radial-gradient(#f00,#ff0,#0f0);
图二

二、传入颜色位置参数

该参数紧跟与颜色值之后,例如:

radial-gradient(#f00 0,#ff0 100%);

以上效果同图一,同样可以类比线性渐变,具体不再赘述。

三、传入渐变形状参数

渐变形状有两种:圆(cicle)和椭圆(ellipse)。例如:

background: radial-gradient(circle,#f00 0,#ff0 100%);

显示效果是一个圆形状的渐变:


图三
background: radial-gradient(ellipse,#f00 0,#ff0 100%);

显示效果是一个椭圆形状的渐变:


图四

四、传入渐变大小参数

1. 具体数值(或百分比)

除了可以像上述显式地声明渐变形状,我们也可以通过传入渐变大小参数来确定形状,例如:

background: radial-gradient(60px,#f00 0,#ff0 100%);

此处只传入一个大小参数,则表示该渐变形状为圆,并且半径大小为60px,效果如下:

图五

若传入两个大小不同的参数,则表示该渐变形状为椭圆,例如:

background: radial-gradient(50% 60px,#f00 0,#ff0 100%);

效果为长半轴为100px(元素宽度的50%)、短半轴为60px的椭圆形渐变:

图六

我们也可以在声明渐变形状的同时在其后紧跟渐变大小,中间用空格隔开,例如:

background: radial-gradient(circle 60px,#f00 0,#ff0 100%);
background: radial-gradient(ellipse 50% 60px,#f00 0,#ff0 100%);

其效果分别同图五和图六。

需要特别注意的是,若渐变形状为圆形,则该渐变大小不能为百分数,而椭圆既可以为具体数值也可以为百分数,个人认为或许是因为圆形半径若为百分数的话就无法确定是以元素的宽为标准还是以高为标准了。

2. 大小声明

一共有以下四种:

closest-side (指定径向渐变的半径长度为从圆心到离圆心最近的边)
closest-corner (指定径向渐变的半径长度为从圆心到离圆心最近的角)
farthest-side (指定径向渐变的半径长度为从圆心到离圆心最远的边)
farthest-corner (指定径向渐变的半径长度为从圆心到离圆心最远的角)

closest-side 为例:

background: radial-gradient(circle closest-side,#f00 0,#ff0 100%);

效果如下图所示:

图七

五、传入渐变圆心位置参数

1. 具体数值(或百分数)

background: radial-gradient(circle farthest-side at 0 0,#f00 0%,#ff0 100%);

效果为圆心位置位于元素左上角,半径为元素宽度的圆形渐变:

图八

2. 方位名称

background: radial-gradient(circle closest-side at center,#f00 0,#ff0 100%);

以上代码效果同图七。

background: radial-gradient(circle farthest-side at top left,#f00 0,#ff0 100%);

以上代码效果同图八。

注意: 圆心位置参数一定要置于radial-gradient()第一个参数的末尾,顺序千万不能放反了哦~~

六、重复渐变

虽然上面已经讲完径向渐变的五大组成部分,但是,与线性渐变一样,径向渐变也同样还存在着重复渐变,我们可以用repeating-radial-gradient()来实现。例如:

background: repeating-radial-gradient(circle at center,#f00 0,#f00 10%,#ff0 10%,#ff0 20%);

效果如下图所示:

图九

嗯,这靶子效果不错!嘿嘿……

结束语: 好了,有关CSS3中的径向渐变今天就讲到这里,如有疑问,欢迎大家评论留言哦~~

相关文章
CSS3 radial-gradient 径向渐变
CSS3 radial-gradient 径向渐变
191 0
|
Web App开发 前端开发 iOS开发
CSS3 经典教程系列:CSS3 径向渐变(radial-gradient)
  《CSS3 经典教程系列》上篇文章介绍了 linear-gradient(线性渐变),这篇文章向大家介绍 radial-gradient(径向渐变)以及重复渐变(线性重复、径向重复)。在以前,渐变效果和阴影、圆角效果一样都是做成图片,现在 CSS3 可以直接编写  CSS 代码来实现。
1503 0
|
7月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
7月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
7月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
7月前
|
前端开发 容器
处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器
这是一个电子处方模拟生成系统,使用html2canvas库实现图片导出功能。系统生成的处方单包含多重防伪标识,并明确标注为模拟数据,仅供学习
|
7月前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应
|
7月前
|
前端开发
医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器
本示例展示如何用HTML/CSS创建医疗信息页面,内容仅供学习参考。页面模拟“阳光医院体检中心”场景,提供预约功能验证(如姓名、手机号、日期)。所有数据仅用于演示

热门文章

最新文章