SVG进阶|SVG渐变(SVG GRADIENTS)

陌丽君_6878

陌丽君_6878

2016-05-17

4282人浏览

原创

  svg渐变是填充svg图形的一种方法。通过填充渐变色,可以使svg图形的填充色或描边色由一种颜色过渡到另一种颜色。在某些时候对svg图形填充渐变色可以得到非常好看的效果。

  svg渐变的例子

  下面展示了在svg图形上使用填充渐变和描边渐变的几个小例子:

1119.png

  在上面的例子中,第一个矩形的描边色没有使用渐变色,填充色使用从浅绿到深绿色的渐变。第二个矩形填充色和渐变色都使用从浅绿到深绿色的渐变。第三个矩形没有填充色,描边色使用从浅绿到深绿色的渐变。第四个矩形填充色使用从浅绿到深绿色的渐变,没有使用描边。

  我们可以使用两种类型的渐变:

  线性渐变
  径向渐变

  线性渐变

  线性渐变是指从一种颜色到另一种颜色的线性变化。在前面的例子中使用的都是线性渐变。

  线性渐变的方向可以是水平方向或垂直方向,也可以是你指定的一个角度的方向。你也可以只为SVG图形的某一部分填充渐变色,而不是整个SVG图形。下面是一些使用线性渐变填充SVG矩形的例子:
1120.png

  第一个矩形使用的是垂直渐变,第二个矩形使用的是水平渐变,第三个矩形使用的是对角渐变(渐变色从左上角到右下角),第四个矩形仅仅在右侧使用渐变色来填充。

  我们可以使用

<svg>
  <defs>
    <lineargradient>
      <stop></stop>
      <stop></stop>
    </lineargradient>
  </defs>

  <rect></rect></svg>


  可以看到,元素是嵌套在

  元素中有两个嵌套的元素控制渐变的方向,而

  下面的表格中列出了元素的一些属性及其描述。

属性
描述
id 渐变的唯一ID号,用于在图形中引用该渐变
x1, y1 x1, y1定义渐变的起点。使用的是百分比数值
x2, y2 x2, y2定义渐变的终点。使用的是百分比数值
spreadMethod 这个参数定义渐变的传播方式。可取值有3个:pad,repeat和reflect。pad是指开始和结束颜色平铺填充整个渐变。repeat是指渐变在整个图形中不断重复。reflect是指渐变在图形中会镜像显示。这个参数只有在渐变没有填充满整个图形时才有效果。(可以参看
gradientTransform 可以使用该参数在应用一个渐变之前对其进行转换(如旋转)
gradientUnits 设置计算 x1, y1 和 x2,y2的方式
xlink:href 设置这个渐变继承自另一个渐变,取值为另一个渐变的ID号。换句话说,如果这个渐变没有设置其它属性值,它将使用ID指向的那个渐变作为默认的渐变


  下面的表格中列出了

属性
描述
offset 设置渐变的开始和结束颜色距离渐变两端的距离。使用渐变的百分比值来设置。例如,10%表示渐变进入图形内部10%的距离
stop-color 渐变停止点的颜色
stop-opacity 该渐变停止点的颜色透明度。



  关于这些属性通过图像来说明比较清晰,来看下面的图像:


1121.png
  下面的代码是上图中渐变定义的代码:

<svg><defs>
  <lineargradient>
    <stop></stop>
    <stop></stop>

    <stop></stop>
    <stop></stop>

  </lineargradient></defs><rect></rect></svg>


  第一个颜色停止点是#00cc00,它位于矩形边部10%的地方。因为spreadMethod属性被设置为pad,在矩形0-10%距离的地方仍然使用第一种颜色#00cc00来填充。

  在第一个颜色停止点之后是第二个颜色停止点,它的颜色是#006600,位于矩形边部30%距离的地方。

  第三个颜色停止点的颜色是#cc0000,位于矩形边部70%距离的地方。

  第四个颜色停止点的颜色是#000099,位于矩形边部90%距离的地方。在这之后的矩形颜色使用第四个颜色停止点的颜色来填充,因为code>spreadMethod属性被设置为pad。

  径向渐变

  径向渐变是一种圆形的颜色渐变方式。下面是几个例子:

1122.png
  在上面的例子中,最后三个绿色的径向渐变分别将渐变的中心设置在不同的位置上,其它都相同,得到的效果却有所不同。第一个绿色径向将被的中心位于矩形的中心位置,第二个绿色径向渐变的中心位于矩形的上边部中心位置,第三个绿色径向渐变的中心位于军训的左上角位置。

  我们可以使用元素来定义颜色径向渐变。下面是一个例子:

<svg>
    <defs>
        <radialgradient>
          <stop></stop>
          <stop></stop>
        </radialgradient>
    </defs>

    <rect></rect></svg>


OpenClaw Model Router Skill
OpenClaw Model Router Skill

一款AI工具,主要用于OpenClaw 确定性模型路由:支持前缀路由(`@codex` / `@mini`)、时区感知的调度切换、切换后验证、回滚以及锁保护,适合需要提升相关任务效率的用户。

下载

  上面的代码实际上是前面例子中第四个绿色径向渐变的代码。在径向渐变中,颜色停止点

  下面的表格中列出了

属性
描述
id 用于在图形上引用该渐变的唯一标识符
cx,cy 径向渐变的中心点X和Y坐标。它的值使用用填充的百分比值。如果没有定义则默认值为50%
fx, fy 径向渐变的焦点X和Y值。它的值使用用填充的百分比值。如果没有定义则默认值为50%。
注意:在Firefox 3.05中如果值低于5%可能会发生问题。
r 径向渐变的半径
spreadMethod 定义径向渐变的传播方式。可取值有3个:pad,repeat和reflect。pad是指开始和结束颜色平铺填充整个渐变。repeat是指渐变在整个图形中不断重复。reflect是指渐变在图形中会镜像显示。这个参数只有在渐变没有填充满整个图形时才有效果。
gradientTransform 可以使用该参数在应用一个渐变之前对其进行转换(如旋转)
gradientUnits 设置计算 x1, y1 和 x2,y2的方式
xlink:href 设置这个渐变继承自另一个渐变,取值为另一个渐变的ID号。换句话说,如果这个渐变没有设置其它属性值,它将使用ID指向的那个渐变作为默认的渐变



  径向渐变的聚焦点是颜色辐射的角度。你可以将径向渐变想象为一盏灯,那么聚焦点决定灯光从什么方向“照射”在图形上。50%,50%表示在图形的正上方,5%,5%表示在图形的左上角位置。

  为了更好的理解径向渐变的中心点和聚焦点,你最好亲自动手分别设置一些它们不同的值,观察得到的不同效果。

  渐变的转换

  你可以使用标准的SVG转换函数来对渐变进行各种转换。可以在和元素中使用gradientTransform属性来进行渐变的转换。下面是一个例子:

<svg>
  <defs>
    <lineargradient>
      <stop></stop>
      <stop></stop>
    </lineargradient>
  </defs>

  <rect></rect></svg>



  这个例子定义了一个带gradientTransform()属性的线性渐变,gradientTransform()属性中将渐变旋转45度。正常情况下这个线性渐变是从上到下的渐变,但是使用了渐变转换之后,渐变变为从右上角到左下角的渐变。

  下面是上面代码的返回结果:
1123.png  


以上就是SVG进阶|SVG渐变(SVG GRADIENTS)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

2026.11.12

80

15

Go-Zero安装与goctl环境配置教程
Go-Zero安装与goctl环境配置教程

本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。

2026.11.12

60

15

Go-Zero零基础入门教程
Go-Zero零基础入门教程

本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。

2026.11.12

40

15

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

140

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

120

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

120

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

100

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

80

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

100

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.3万人学习