【CSS进阶】使用CSS gradient制作绚丽渐变纹理背景效果(上)

简介: 一直对渐变背景这块比较感兴趣,但是因为每天加班实在太忙了,任务也比较多。所以就只能下班的时间研究渐变背景这方面的知识,一来满足了自己的好奇心,二来可以更加了解这方面的知识。

前言



一直对渐变背景这块比较感兴趣,但是因为每天加班实在太忙了,任务也比较多。所以就只能下班的时间研究渐变背景这方面的知识,一来满足了自己的好奇心,二来可以更加了解这方面的知识。跟更多不断学习的小伙伴们一起进步,一起汲取新的知识。不断成长,不断精进自己的知识。有想一起讨论技术,一起成长的伙伴们,也可以加微信一起交流。各微信群里面,有很多前端领域的大佬,在他们身上学到了很多,今后也努力向他们看齐。不断提升自己。加油。


CSS radial-gradient() 函数



定义与用法


radial-gradient() CSS函数创建了一个图像。

该图像是由从原点发出的两种或者多种颜色之间的逐步过渡组成。

形状可以是圆形(circle)或椭圆形(ellipse)。

与其它渐变相同,径向渐变是一个不固定尺寸的图像,即,它没有首选的大小,也没有首选的比例。具体大小将由它所应用的元素的大小决定。


例如:


1.双色圆形渐变


background: radial-gradient(#e66465, #9198e5);

1.JPG


2.closest-side


渐变的边缘形状与容器距离渐变中心点最近的一边相切(圆形)或者至少与距离渐变中心点最近的垂直和水平边相切(椭圆)。


background: radial-gradient(closest-side, #3f87a6, #ebf8e1, #f69d3c);

2.JPG


3.cicle圆形渐变


background: radial-gradient(circle at 100%, #333, #333 50%, #eee 75%, #333 75%);

3.JPG


4.ellipse椭圆形


radial gradient 的组成



4.JPG


【解释】:

  1. 径向渐变由其中心点、边缘形状轮廓、两个或多个色值结束点定义而成。
  2. 为了创建平滑的渐变,径向渐变函数绘制了一系列从中心点放射到边缘形状(甚至可能超出范围)的同心轮廓。
  3. 边缘形状可以是圆形(circle)或椭圆形(ellipse)。
  4. 色彩结束点位于虚拟渐变射线上,该渐变射线从中心点水平向右延伸。
  5. 基于百分比的色彩结束位置是相对于边缘形状和此渐变射线之间的交点(代表100%)。
  6. 每个形状都是一种单色,并由其相交的渐变射线上的颜色确定。
    基本语法:


radial-gradient([[<shape>||<size>]?[at <position>,]?<color-stop>[,<color-stop>]+)
eg:radial-gradient(circle at center, red 0, blue, green 100%)


  1. 【注意】:gradient属于image类型,所以它可以用于任何适用于image的地方。不能用于 background-color 和其他属性比如color数据类型。


可配置参数


参数 解释
position 与background-position或者transform-origin类似。如没有设置,默认为中心点。
shape 渐变的形状。圆形(渐变的形状是一个半径不变的正圆)或椭圆形(轴对称椭圆)。默认值为椭圆
size 渐变的尺寸大小
color-stop 表示某个确定位置的固定色值,包含一个color值加上可选的位置值(相对虚拟渐变射线的percentage或者length长度值)。 百分比值0%,或者长度值0,表示渐变中心点;百分比值100%表示渐变射线与边缘形状相交的点。 其间的百分比值线性对应渐变射线上的点。
extent-keyword 关键字用于描述边缘轮廓的具体位置。


参考资料MND-linear-gradient():linear-gradient)


径向渐变演示


  1. x轴:left: 0% center: 50% right: 100%
  2. y轴 0% center: 50% bottom: 100%

5.JPG


在线展示地址


  1. 数值

数值:x轴数值表示在x轴上离0点(渐变框左上角)的偏移量;y轴数值表示在y轴上离0点的偏移量。

6.JPG


在线展示地址

  1. 使用百分比


其中x轴的百分比相对于渐变框的宽度,而y轴的百分比相对于渐变框的高度。渐变框的宽高由background-size决定。

7.JPG


在线展示地址

  1. 单个值
    当只有一个值时,默认第二个值为center。

8.JPG


在线展示地址

  1. shape形状
    定义渐变的形状是圆circle或椭圆ellipse。默认是椭圆。

9.JPG


在线展示地址


extent-keyword描述




常量 描述 用法
closest-side 渐变的边缘形状与容器距离渐变中心点最近的一边相切(圆形)或者至少与距离渐变中心点最近的垂直和水平边相切(椭圆)。 background-image: radial-gradient(closest-side at 60% 55%, red, yellow, black);
closest-corner 渐变的边缘形状与容器距离渐变中心点最近的一个角相交。 background-image: radial-gradient(closest-corner at 60% 55%, red, yellow, black);
farthest-side 与closest-side相反,边缘形状与容器距离渐变中心点最远的一边相切(或最远的垂直和水平边)。 background-image: radial-gradient(farthest-side at 60% 55%, red, yellow, black);
farthest-corner 渐变的边缘形状与容器距离渐变中心点最远的一个角相交。 background-image: radial-gradient(farthest-corner at 60% 55%, red, yellow, black);

10.JPG

在线展示地址


线性渐变的色标


与线性渐变的色标相同的部分不再重复,这里只说明不同的部分。由于位置处于100%的色标有时并不会占满渐变区域,则浏览器会默认使用最后一个色标的颜色铺满渐变区域。

11.JPG


在线展示地址


repeating-radial-gradient重复渐变


  1. CSS函数repeating-radial-gradient创建一个从原点辐射的重复渐变组成的image 。
  2. 它类似于radial-gradient 并且采用相同的参数,但是它会在所有方向上重复颜色,以覆盖其整个容器。
  3. 函数的结果是 gradient数据类型的对象, 是一种特殊的image类型。


示例


/* 一个从容器中心点开始的重复渐变,   从红色开始,渐变到蓝色,再渐变到绿色 */
repeating-radial-gradient(circle at center, red 0, blue, green 30px);

12.JPG


  1. 每次重复时,色标位置的偏移量都是基准渐变长度(最后一个色标和第一个之间的距离)的倍数。
  2. 最后色标的色值应该与第一个色标的色值保持一致;如果不一致的话,会导致非常突兀的渐变效果。
  3. 它没有原始尺寸或首选尺寸,也没有首选的比列。它将自适应于对应元素的尺寸。


【注】:其他参数使用跟radial-gradient()一致。可参考上面介绍。


径向渐变重复


  1. 重复渐变可以实现径向渐变的重复效果,使色标在椭圆方向上无限重复,实现一些特殊的效果。
  2. 只有当首尾两颜色位置不在0%或100%时,重复渐变才生效。
background-image: -webkit-repeating-radial-gradient(blue 20%,green 50%);
background-image: repeating-radial-gradient(blue 20%,green 50%);

13.JPG

在线展示地址


linear-gradient()线性渐变


CSS linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片。其结果属于gradient数据类型,是一种特别的image数据类型。


14.JPG

在线展示地址

参考资料:深入理解CSS径向渐变radial-gradient:linear-gradient


线形渐变的构成


15.JPG

  1. 渐变线上的颜色值是由不同的点来定义,包括起始点,终点,以及两者之间的可选的中间点(中间点可以有多个)。
  2. 起始点是渐变线上代表起始颜色值的点。起始点由渐变线和过容器顶点的垂直线之间的交叉点来定义。(垂直线跟渐变线在同一象限内)
  3. 终点也是由渐变线和从最近的顶点发出的垂直线之间的交叉点定义的。
  4. 起点附近的点具有跟起点相同的颜色值,终点附近的点具有跟终点相同的颜色值。


示例代码


linear-gradient(red, orange, yellow, green, blue);
linear-gradient(red 0%, orange 25%, yellow 50%, green 75%, blue 100%);
linear-gradient(red 10%, 30%, blue 90%);
linear-gradient(red 40%, yellow 30%, blue 65%);
linear-gradient(red 0%, orange 10%, orange 30%, yellow 50%, yellow 70%, green 90%, green 100%);
linear-gradient(red, orange 10% 30%, yellow 50% 70%, green 90%);
linear-gradient(red 0%, orange 10% 30%, yellow 50% 70%, green 90% 100%);


使用语法

where <side-or-corner> = [ left | right ] || [ top | bottom ]
  and <color-stop-list> = [ <linear-color-stop> [, <color-hint>? ]? ]#, <linear-color-stop>
  and <linear-color-stop> = <color> [ <color-stop-length> ]?
  and <color-stop-length> = [ <percentage> | <length> ]{1,2}
  and <color-hint> = [ <percentage> | <length> ]
相关文章
|
8天前
|
前端开发
CSS背景
【5月更文挑战第3天】CSS背景。
24 8
|
11天前
|
前端开发 UED
【专栏:CSS基础篇】CSS背景与边框:设计网页外观
【4月更文挑战第30天】CSS中的背景和边框是网页设计的关键元素,能增强视觉层次和用户体验。背景可通过`background-color`设置颜色,`background-image`添加图像,`background-position`和`background-size`调整位置和大小。边框用`border-style`定义样式,`border-width`设定宽度,`border-radius`创建圆角。理解并巧妙运用这些属性,结合媒体查询实现响应式设计,将使网页更具吸引力和功能性。不断学习和创新是提升设计能力的关键。
|
12天前
|
前端开发
css样式字体、文本、背景属性,盒子模型详解,轻松调教出优美的字体和网页背景色
css样式字体、文本、背景属性,盒子模型详解,轻松调教出优美的字体和网页背景色
|
25天前
|
前端开发
【CSS进阶】使用CSS gradient制作绚丽渐变纹理背景效果(下)
【CSS进阶】使用CSS gradient制作绚丽渐变纹理背景效果
71 1
|
25天前
|
前端开发 容器
【CSS进阶】使用CSS gradient制作绚丽渐变纹理背景效果(上)
【CSS进阶】使用CSS gradient制作绚丽渐变纹理背景效果
41 1
|
2天前
|
移动开发 HTML5
HTML5/CSS3粒子效果进度条代码
HTML5/CSS3进度条应用。这款进度条插件在播放进度过程中出现粒子效果,就像一些小颗粒从进度条上散落下来
13 0
HTML5/CSS3粒子效果进度条代码
|
5天前
|
移动开发 前端开发 JavaScript
:掌握移动端开发:HTML5 与 CSS3 的高效实践
:掌握移动端开发:HTML5 与 CSS3 的高效实践
22 1
|
11天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
11天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
11天前
|
前端开发 JavaScript UED
【专栏:HTML 与 CSS 前端技术趋势篇】Web 性能优化:CSS 与 HTML 的未来趋势
【4月更文挑战第30天】本文探讨了CSS和HTML在Web性能优化中的关键作用,包括样式表压缩、选择器优化、DOM操作减少等策略。随着未来趋势发展,CSS模块系统、自定义属性和响应式设计将得到强化,HTML新特性也将支持复杂组件构建。同时,应对浏览器兼容性、代码复杂度和性能功能平衡的挑战是优化过程中的重要任务。通过案例分析和持续创新,我们可以提升Web应用性能,创造更好的用户体验。