目录

SVG 学习<一>基础图形及线段

SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组

SVG 学习<三>渐变

SVG 学习<四> 基础API

SVG 学习<五> SVG动画

SVG 学习<六> SVG的transform

SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令

SVG 学习<八> SVG的路径——path(2)贝塞尔曲线命令、光滑贝塞尔曲线命令

(转)利用 SVG 和 CSS3 实现有趣的边框动画

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SVG的视窗,视野和全局(世界)

SVG全局(世界)是无穷大的(SVG的全局并不局限于html的范围);

例:

    <svg width="100%" height="100%" style="border: solid 1px red;">
<circle cx="100" cy="100" fill="green" r="200" />
</svg>

上述代码绘制了一个半径为200px的圆,圆心坐标为100 * 100,SVG标签(视窗)占满整个浏览器。但从下图中可以看到圆形还是有一部分在屏幕之外,所以SVG的全局(世界)是无穷大且不受任何元素的影响。

SVG的视野(viewbox)是观察全局(世界)的一个矩形区域,可定义。

例:

    <svg width="500px" height="400px" viewbox="-15 -20 80 80" style="border: solid 1px red;display: block;margin-left:200px;">
<circle cx="0" cy="0" fill="green" r="20" />
</svg>

通过viewbox属性来调整SVG视野;

viewbox=" x y width height "   x:左上角横坐标,y:左上角纵坐标,width:宽度,height:高度;

viewbox的参数可以自己动手做几个demo体会这些参数的作用;

SVG标签的 width height可自定义大小,这就是SVG的视窗。SVG视窗可以理解为在页面中定义一片区域用来渲染SVG元素。

例:

    <svg width="500px" height="400px" style="border: solid 1px red;display: block;margin-left:200px;">
<circle cx="100" cy="100" fill="green" r="200" />
</svg>

同样还是刚才那个圆,现在将SVG标签的左边距调整200像素。发现圆心相对于SVG视窗的位置没变,但相对于屏幕左上角的位置变了。所以说SVG视窗是页面中用来渲染SVG元素的。

小结:SVG全局(世界)可以理解为景,SVG视野可以理解为相片视野,SVG视窗可以理解为相片本身。

SVG分组——g标签

g标签在svg标签内使用,功能用来对图形,文字,线段进行分组。

分组可以对一组SVG元素统一调整 填充色,笔触色,坐标等属性。

g标签下所有子标签都将继承g标签的属性;

g标签可嵌套使用;

可通过定义transform属性改变坐标;

HTML代码

    <svg class="svg">
<g class="g_1">
<rect x="20" y="20"/><rect x="240" y="20" />
</g>
<g class="g_2">
<circle cx="100" cy="200" /><circle cx="220" cy="200" />
</g>
</svg>

CSS代码

.g_1{
stroke:rgb(0,0,0);
stroke-width:2px;
fill:rgb(0,255,255);
}
rect{ width:200px; height:100px; }
.g_2{
stroke:rgb(220,17,20);
stroke-width:2px;
fill:rgb(255,255,255);
}
circle{ r:50px; }

g标签可以对一组图形,文字或线段的笔触色,填充色,笔触宽度进行统一定义

SVG超链接——图形,线段也能链接

HTML代码

    <svg class="svg">
<a xlink:href="http://www.baidu.com" target="_blank">
<circle class="circle" />
</a>
</svg>

CSS代码

.circle{ cx:100px;cy:100px;fill:rgb(0,0,255);stroke-width:;stroke:rgb(0,255,0);r:80px; }

svg标签中可加入a标签,但href属性前必须加上xlink,svg是xhtml元素超链接必须加上xlink。

同理,svg中的a标签可以包含任何svg元素。

SVG的stroke属性(SVG的画笔)

stroke : 定义笔触颜色;

stroke-width : 定义笔触宽度;

stroke-linecap : 定义线段两端样式;

stroke-dasharray : 定义虚线样式;

HTML代码

    <svg class="svg">
<g fill="none">
<line stroke="rgb(255,0,0)" stroke-width="5" x1="2" y1="5" x2="202" y2="5"/>
<line stroke="rgb(0,255,0)" stroke-width="10" x1="2" y1="25" x2="202" y2="25"/>
<line stroke="rgb(0,0,255)" stroke-width="15" x1="2" y1="55" x2="202" y2="55"/>
</g>
</svg>

HTML代码

    <svg class="svg">
<g fill="none" stroke="rgb(0,255,221)" stroke-width="50">
<line stroke-linecap="butt" x1="50" y1="50" x2="552" y2="50"/>
<line stroke-linecap="round" x1="50" y1="150" x2="552" y2="150"/>
<line stroke-linecap="square" x1="50" y1="250" x2="552" y2="250"/>
</g>
</svg>

HTML代码

    <svg class="svg">
<g fill="none" stroke="rgb(0,255,221)" stroke-width="10">
<line stroke-dasharray="2,2" x1="50" y1="50" x2="552" y2="50"/>
<line stroke-dasharray="20,20" x1="50" y1="150" x2="552" y2="150"/>
<line stroke-dasharray="20,10,30,10,20,30" x1="50" y1="250" x2="552" y2="250"/>
<line stroke-dasharray="5,20,10,20,15,20,20,20,25,20,30,20,35" x1="50" y1="350" x2="552" y2="350"/>
</g>
</svg>

stroke-dasharray定义虚线方式,建议值为规律性数列。

SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组的更多相关文章

  1. SVG 学习<八> SVG的路径——path(2)贝塞尔曲线命令、光滑贝塞尔曲线命令

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  2. SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  3. SVG 学习<六> SVG的transform

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  4. SVG 学习<五> SVG动画

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  5. SVG 学习<四> 基础API

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  6. SVG 学习<三>渐变

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  7. SVG 学习<一>基础图形及线段

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  8. SVG Stroke属性

    一.stroke属性介绍 SVG提供了一个范围广泛stroke属性,用于描述轮廓,其中包括 stroke 指定颜色 stroke-width 指定宽度 stroke-linecap 指定端点样式 st ...

  9. SVG学习笔录(二)

    一.svg动画SMIL SVG采用的是使用文本来定义图形,这种文档结构非常适合于创建动画.要改变图形的位置.大小和颜色,只需要调整相应的属性就可以了.事实上,SVG有为各种事件处理而专门设计的属性,甚 ...

随机推荐

  1. windows 下 Anaconda 安装 TensorFlow

    转自: https://www.cnblogs.com/nosqlcoco/p/6923861.html 什么是 Anaconda? Anaconda is the leading open data ...

  2. django get post files请求知识点

    GET: 我们在浏览器里直接键入地址回车,这种方式其实也是get方式提交了数据,如: http://localhost/login?user=123&pwd=123  就是把用户名123密码1 ...

  3. 打开RAD Studio XE5提示"displayNotification:内存不够"解决办法

    操作方法: 在RAD Studio XE5快捷方式上鼠标右击选择属性,在弹出的快捷方式标签页中将目标(T):"C:\Program Files (x86)\Embarcadero\RAD S ...

  4. uiautomator viewer

    前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是androi ...

  5. DS二叉树--层次遍历

    题目描述 层次遍历二叉树,是从根结点开始遍历,按层次次序“自上而下,从左至右”访问树中的各结点. 建树方法采用“先序遍历+空树用0表示”的方法 要求:采用队列对象实现,函数框架如下: 输入 第一行输入 ...

  6. Ubuntu 14.10 下Hadoop FTP文件上传配置

    最近老板提出一个需求,要用Hadoop机群管理生物数据,并且生物数据很多动辄几十G,几百G,所以需要将这些数据传到HDFS中,在此之前搭建了HUE用来图形化截面管理HDFS数据,但是有个问题,上面使用 ...

  7. bzoj2909: Bipartite Numbers

    Description Bipartite Number是这样的一个正整数,他只能由两段相同的数组成,如44444411,10000000, 5555556,41,而4444114,44444则不是. ...

  8. docker logs 查看实时日志

    docker logs -f -t --since="2017-05-31" --tail=10 edu_web_1 --since : 此参数指定了输出日志开始日期,即只输出指定 ...

  9. web前端开发浅析

    原文地址:http://www.cnblogs.com/babyzone2004/articles/1807381.html 摘 要:前端开发作为一项新的领域,经历的时间随然较短,却显示了强大的生命里 ...

  10. [UE4]移动小地图

    让玩家角色永远处于小地图的中心位置. 一.将RoundMiniMap的StaticMiniMap使用Canvas Panel包裹,StaticMiniMap的锚点Anchors设置为中心对齐 二.新建 ...