Style

  1. <svg width="200" height="200" xmlns="http://www.w3.org/2000/svg" version="1.1">
  2. <defs>
  3. <style type="text/css"><![CDATA[
  4. #MyRect:hover {
  5. stroke: black;
  6. fill: red;
  7. }
  8. ]]></style>
  9. </defs>
  10. <rect x="10" height="180" y="10" width="180" id="MyRect"/>
  11. </svg>

样式分离啊,注意上面有个hover,感觉像在使用css一样~

下面是内嵌的,缺点就是木有样式和行为分离:

  1. <rect x="10" height="180" y="10" width="180" style="stroke: black; fill: red;"/>

最后从外面导入样式

  1. <?xml version="1.0" standalone="no"?>
  2. <?xml-stylesheet type="text/css" href="style.css"?>
  3.  
  4. <svg width="200" height="150" xmlns="http://www.w3.org/2000/svg" version="1.1">
  5. <rect height="10" width="10" id="MyRect"/>
  6. </svg>

在style.css文件里面写上

  1. #MyRect {
  2. fill: red;
  3. stroke: black;
  4. }

Gradients

一个gradient就是从一个颜色到另一个颜色的平滑转变。类型:

  • Linear
  • Radial

Linear

  1. <svg height="150" width="400">
  2. <defs>
  3. <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
  4. <stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
  5. <stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
  6. </linearGradient>
  7. </defs>
  8. <ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)" />
  9. </svg>

执行步骤:

  • <linearGradient>标签上的id为每一个gradient定义了与众不同的名字
  • <linearGradient> 中的 x1, x2, y1,y2 定义了渐变开始和结束的位置
  • 渐变的颜色范围可以是一种亦或多种颜色。每一种颜色都由<stop>标签指定颜色的开始和结束位置。
  • ellipse中的fill属性将gradient和ellipse连接起来,也就是渐变作为填充显示在ellipse中

Radial Gradient

<radialGradient> 元素用来定义一个圆圈渐变(a radial gradient).

<radialGradient>元素必须内嵌在<defs> 标签中. <defs>标签用于简短的定义以及包含了一些特殊元素的定义(例如gradients)

  1. <svg height="150" width="500">
  2. <defs>
  3. <radialGradient id="grad1" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
  4. <stop offset="0%" style="stop-color:rgb(255,255,255);
  5. stop-opacity:0" />
  6. <stop offset="100%" style="stop-color:rgb(0,0,255);stop-opacity:1" />
  7. </radialGradient>
  8. </defs>
  9. <ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)" />
  10. </svg>

代码解释:

  • <radialGradient>标签上的id为渐变定义了一个独一无二的名字
  • cx, cy 和 r 定义了最外围的圆, fx 和fy 定义了内部的圆
  • 渐变的颜色范围可以包括两个亦或多个颜色。每个颜色都由<stop>标签定义了颜色的开始和结束。
  • 利用ellipse中个fill属性,将渐变作为填充颜色填充到ellipse中

如果不设置fx和fy则默认和cx,cy定义是一样的。

  1. <radialGradient id="grad1" cx="50%" cy="50%" r="50%" fx="0.2" fy="50%">

  1. <radialGradient id="grad1" cx="0.2" cy="50%" r="50%" fx="0.2" fy="50%" spreadMethod="pad">

可以看见默认的设置是spreadMethod="pad",也就是填充

  1. <radialGradient id="grad1" cx="0.2" cy="50%" r="50%" fx="0.2" fy="50%" spreadMethod="repeat">

注意上面是repeat,重复白,蓝渐变

  1. <radialGradient id="grad1" cx="0.2" cy="50%" r="50%" fx="0.2" fy="50%" spreadMethod="reflect">

上面的reflect,和repeat呈现的方式相反,是蓝,白

Pattern

  1. <svg width="200" height="200">
  2. <defs>
  3. <pattern id="Pattern" x="0" y="0" width=".25" height=".25">
  4. <rect x="0" y="0" width="50" height="50" fill="skyblue"/>
  5. <rect x="0" y="0" width="25" height="25" fill="yellow"/>
  6. </pattern>
  7. </defs>
  8. <rect fill="url(#Pattern)" stroke="black" x="0" y="0" width="200" height="200"/>
  9. </svg>

  1.  

【概念】SVG(2)的更多相关文章

  1. HTML5中的SVG

    * SVG * 基本内容 * SVG并不属于HTML5专有内容 * HTML5提供有关SVG原生的内容 * 在HTML5出现之前,就有SVG内容 * SVG,简单来说就是矢量图 * SVG文件的扩展名 ...

  2. SVG 学学就会了。

    SVG 随便学学就会了 这两天闲来没事把 Echart 换成 Rechart 感觉世界都清爽了.因为 rechart 使用 svg 来渲染,所以顺带学了下 SVG 感觉很轻松哦. 概念 SVG 是 w ...

  3. android studio集成融云 SDK 后在部分机型启动对话时崩溃

    最初构建项目是 eclipse, 后来切换到 android studio来做开发. 后来多个用户反馈在android4.4机型上存在启动对话崩溃的问题.但是IOS 版工程从来没有重现. 调试报错信息 ...

  4. H5小内容(四)

    SVG   基本内容     SVG并不属于HTML5专有内容       HTML5提供有关SVG原生的内容     在HTML5出现之前,就有SVG内容     SVG,简单来说就是矢量图     ...

  5. Android Vector曲折的兼容之路

    Android Vector曲折的兼容之路 两年前写书的时候,就在研究Android L提出的Vector,可研究下来发现,完全不具备兼容性,相信这也是它没有被广泛使用的一个原因,经过Google的不 ...

  6. Android Drawable Mipmap Vector使用及Vector兼容

    原文地址:http://blog.csdn.net/eclipsexys/article/details/51838119 http://blog.csdn.net/qq_15545283/artic ...

  7. 【概念】SVG(1)

    ok,我们讲讲svg 学习前提:懂HTML和基本的XML SVG简介: 1.SVG全称Scable Vector Graphic,可伸缩的矢量图 2.SVG用于定义针对于Web的基于矢量的图形 3.S ...

  8. 关于SVG的viewBox

    在SVG中,通过svg标记的 width和height可以规定这段SVG代码所表达的数据在绘制时所占用的空间大小 如下代码svg设置了宽度与高度,rect同样,所以结果自然是全屏 <svg wi ...

  9. SVG Path高级教程

    课程分为四个方面: 1. Path概述 2. 移动和直线命令 3. 弧线命令 4. 贝塞尔曲线命令 Path概述 <path> 标签用来定义路径,Path字符串是由命令及其参数组组成的字符 ...

随机推荐

  1. JRoll 2 使用文档(史上最强大的下拉刷新,滚动,无限加载插件)

    概述 说明 JRoll,一款能滚起上万条数据,具有滑动加速.回弹.缩放.滚动条.滑动事件等功能,兼容CommonJS/AMD/CMD模块规范,开源,免费的轻量级html5滚动插件. JRoll第二版是 ...

  2. ios构造和析构

    遵循规则: 构造先父类后子类 析构先子类后父类 所以,自定义的init函数需要首先[super init....] dealloc中[super dealloc]却是放在最后的 - (id)initW ...

  3. [反汇编练习] 160个CrackMe之030

    [反汇编练习] 160个CrackMe之030. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  4. Android MPAndroidCharts 框架 画可滑动查看的直方图

    1.由于公司项目的需求,所以花了1.2天研究 MPAndroidCharts框架 .可是发现好多博客对我都没得帮助.浪费非常多时间在百度上.不得不说google 真是比百度强太多了. 要求:统计出56 ...

  5. hdu 4432 数学杂题

    http://acm.hdu.edu.cn/showproblem.php?pid=4432 6分钟写的代码,一上午去调试,, 哎,一则题目没看懂就去写了,二则,哎,,恶心了.在坚持几天然后ACM退役 ...

  6. HDU ACM 1073 Online Judge -&gt;字符串水题

    分析:水题. #include<iostream> using namespace std; #define N 5050 char a[N],b[N],tmp[N]; void Read ...

  7. gulp(基础篇)

    今天在写项目的时候用到了gulp构建工具,虽然一年前就有用过,但是一直只存在于我的“有道云笔记”里,今天又一次用到,固然是巩固一下,这里来记录一下吧:这里我主要想要记录的就是初学者在第一次使用gulp ...

  8. canvas 星空插件

    (function(a){ a.fn.starBg=function(p){ var p=p||{}; var w_w=p&&p.window_width?p.window_width ...

  9. ecshop忘记管理员密码

    直接修改数据表 ecs_admin_user, 找到对应的管理员, 同时修改 password 为 2fc3ec4c91d51bee94f4a8ccbdbe5383 和 ec_salt 为1819, ...

  10. [网页游戏开发]Morn简介及使用教程

    网页游戏开发利器,morn系列教程之Morn简介及使用教程 网页游戏开发的一大部分工作是在和UI制作上,一个好的工具及框架能使开发事半功倍,Adobe自带flash IDE和Flex各有不足. Mor ...