SVG渐变

渐变是一种从一种颜色到另一种颜色的平滑过渡,可以把多个颜色的过渡应用到同一个元素。

渐变有两种:

Linear

Redial

线性渐变-<linearGradient>

linearGradient元素用于定义线性渐变

linearGradient标签必须嵌套在defs标签的内部。defs标签是definitions的缩写,它可对诸如渐变之类的特殊元素进行定义。

线性渐变可以定义为水平、垂直或角渐变:

1、当y1和y2相等,而x1和x2不同时,可创建水平渐变

2、当x1和x2相等,而y1和y2不同时,可创建垂直渐变

3、当x1和x2不同,且y1和y2不同时,可创建角形渐变

实例1

定义垂直线性渐变从黄色到蓝色的椭圆形,垂直渐变:

SVG代码:

<svg xmlns="http://www.w3.org/2000/svg">

<defs>

<linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%">

<stop offset="0%" style="stop-color:rgb(255, 216, 0);stop-opacity:1;" />

<stop offset="100%" style="stop-color:rgb(0, 255, 255);stop-opacity:1;"/>

</linearGradient>

</defs>

<ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)"/>

</svg>

实例2

定义水平线性渐变从黄色到蓝色的椭圆形,水平渐变:

SVG代码:

<svg xmlns="http://www.w3.org/2000/svg">

<defs>

<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">

<stop offset="0%" style="stop-color:rgb(255, 216, 0);stop-opacity:1;" />

<stop offset="100%" style="stop-color:rgb(0, 255, 255);stop-opacity:1;"/>

</linearGradient>

</defs>

<ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)"/>

</svg>

实例3

定义角形渐变从黄色变蓝色

SVG代码:

<svg xmlns="http://www.w3.org/2000/svg">

<defs>

<linearGradient id="grad1" x1="0%" y1="0%" x2="50%" y2="50%">

<stop offset="0%" style="stop-color:rgb(255, 216, 0);stop-opacity:1;" />

<stop offset="100%" style="stop-color:rgb(0, 255, 255);stop-opacity:1;"/>

</linearGradient>

</defs>

<ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)"/>

</svg>

实例4

放射性渐变-<radialGradient>

定义一个放射性渐变从白色到红色椭圆:

SVG代码:

<svg height="400" width="400"  xmlns="http://www.w3.org/2000/svg">

<defs>

<radialGradient id="rad1" cx="50%" cy="50%" r="50%" fx="50%" fy="50%" >

<stop offset="0%" style="stop-color:rgb(255, 255, 255);stop-opacity:0;"  />

<stop offset="100%" style="stop-color:rgb(255, 0, 0);stop-opacity:1"/>

</radialGradient>

</defs>

<ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#rad1)"/>

</svg>

代码解析:

1、radialGradient标签的id属性可为渐变定义一个唯一的名称

2、CX、CY和r属性定义的最外层圆和Fx和Fy定义的最内层圆

3、渐变颜色范围可以由两个或两个以上的颜色组成。每种颜色用一个<stop>标签指定。offset属性用来定义渐变色开始和结束

4、填充属性把ellipse元素链接到此渐变

学习SVG系列(5):SVG渐变的更多相关文章

  1. 学习SVG系列(4):SVG滤镜效果

    注意:Internet Explorer和Safari不支持SVG滤镜 <defs>.<filter> 所有互联网的SVG滤镜定义在<defs>元素中,<fi ...

  2. 学习SVG系列(3):SVG Stroke属性

    SVG stroke 属性 1.stroke 2.stroke-width 3.stroke-linecap 4.stroke-dasharray 5.stroke-opacity 6.stroke- ...

  3. 学习SVG系列(1):SVG基础

    什么是SVG? 1.指可伸缩矢量图形 2.用来定义用于网络的基于矢量的图形 3.使用XML格式定义图形 4.图像在放大或改变尺寸的情况下其图形不会有所损失 5.万维网联盟的标准, 用于描述二维矢量图形 ...

  4. SVG系列教程:SVG简介与嵌入HTML页面的方式

    地址:http://www.w3cplus.com/html5/svg-introduction-and-embedded-html-page.html 随着技术向前的推进,SVG相关的讨论也越渐频繁 ...

  5. HTML5 学习03——内联 SVG

    什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺 ...

  6. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  7. 【翻译svg教程 】svg 的坐标系统

    http://tutorials.jenkov.com/svg/svg-coordinate-system.html svg的坐标系统(和大多数计算机绘图的坐标系统)和数学中绘图系统有点不一样 数学/ ...

  8. Nagios学习实践系列——基本安装篇

    开篇介绍 最近由于工作需要,学习研究了一下Nagios的安装.配置.使用,关于Nagios的介绍,可以参考我上篇随笔Nagios学习实践系列——产品介绍篇 实验环境 操作系统:Red Hat Ente ...

  9. Nagios学习实践系列——配置研究[监控当前服务器]

    其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...

随机推荐

  1. (46) odoo核心文档分享

    *前言: 要掌握一个系统,还得有扎实的基础,最好的方法,阅读核心文档 然后去实践. *核心文档列表如下: odoo8官方参考.pdf                      链接: http://p ...

  2. 即时聊天IM之四 Android客户端IM帮助类编写

    图文无关一起娱乐: 这一篇我们开始写Android端的Smack版主类,后面Android的IM功能都是通过这个帮助类实现的 引用类库: 因为我用的是IDE是Android Studio,所以我通过g ...

  3. nginx和tomcat的区别

    web上的server都叫web server,但是大家分工也有不同的. nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什 ...

  4. cookie多次点赞效果

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  5. Selenium VS QTP

      Selenium系列 QTP 适用结构  B/S结构  C/S.B/S结构 适用人员 有一定代码基础(Java.C#.Python.Ruby) 对编程不是很熟悉的.厌烦了做手工功能测试的.想快速进 ...

  6. 开发Blog整理

    开发Blog记录 清理收藏夹 太多了,来不及看了. http://blog.sina.com.cn/s/blog_67d95f40010113ec.htmlhttp://segmentfault.co ...

  7. innoDB 存储引擎

    innodb 是在mysql 5.5.8 及之后的版本中成为mysql的默认存储引擎.之前都使用myisam.   innodb 是事务型的存储引擎 支持ACID事务,适用于小事务.   1.表空间类 ...

  8. 实验一 cmd命令的编写

    一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS,UNIX的命令行解释程序 (1)自行定义 ...

  9. 开启Win7系统管理员Administrator账户

    Win7系统凭借酷炫的界面以及简单.易用.快速.安全等特点,迅速成为全球最受用户喜爱的操作系统,如今Win7已经成为身边很多朋友生活学习工作的好伙伴.在我们使用Win7的时候,有一些软件的正常运行需要 ...

  10. string类实现(C++)

    class CMyString { friend std::ostream& operator<<( std::ostream& os, const CMyString&a ...