svg 标签

SVG中的’defs’ and ‘use’-可复用的图元定义

在下一个示例中,我使用了defs中的元素之前,定义了如何去展现图元。

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg viewBox = "0 0 1000 1000" version = "1.1">
    <defs>
        <!-- A circle of radius 200 -->
        <circle id = "s1" cx = "200" cy = "200" r = "200" fill = "yellow" stroke = "black" stroke-width = "3"/>
        <!-- An ellipse (rx=200,ry=150) -->
        <ellipse id = "s2" cx = "200" cy = "150" rx = "200" ry = "150" fill = "salmon" stroke = "black" stroke-width = "3"/>
    </defs>
    <use x = "100" y = "100" xlink:href = "#s1"/>
    <use x = "100" y = "650" xlink:href = "#s2"/>
</svg>

请注意以下代码

<circle id="s1"...

这行代码定义了一个圆,并且设置了他的id属为s1.  在后面的代码中, 可以使用这个ID来引用原来定义好的圆。 使用use标签,并在标签中设置"xlink:href"属性(XLINK:HREF =“#S1线”)。 请注意: “use”标签中还设置了x和y的属性, 这两个属性会设置到被添加到的原始定义中(即,在例子中,圆的cx和cy)。

由上面可见,defs和use配合使用。

变换SVG元素

SVG中可以将多个元素结合起来,使它们形成一个组,变为一个整体。

<g>元素代表“组”,可以用来结合多个相关的元素。组内成员可以由通过ID来引用。些外,组也可以作为一个整体进行变换。如果你为组添加了变换属性,那么组中所有内容都会进行变换。变换属性包含了旋转、变形、缩放和斜切。

<svg width="200" height="200">
        <g transform="translate(60,0) rotate(30) scale(0.75)" id="ShapeGroup">
            <rect x="50" y="20" width="100" height="80" stroke="red" fill="#ccc"></rect>
            <circle cx="120" cy="80" r="40" stroke="#00f" fill="none" stroke-width="8"></circle>
         </g>
    </svg>

路径

SVG不公包含简单的形状,还包含自由形态的路径。path元素有一个d属性,代表路径数据。在d的值中,M代表移至(Move to),L代表划线至(Line to),Q代表二次曲线,Z代表闭合路径。

  <svg width="200" height="200">
        <path d="M25,50 L10,80 L20,80 L5,110,L15,110,L20,80 Z"  />
    </svg>

文本

SVG中文本有点类型于CSS中对于样式的定义

<svg width="200" height="200">
        <text x="10" y="80" font-family="Droid Sans" stroke="#00f" fill="#00f"
            font-size="40px" font-weight="bold">Hello SVG</text>
    </svg>

 

时间: 2024-10-12 19:35:35

svg 标签的相关文章

SVG标签

svg标签和Canvas标签的不同 SVG通过XML的方式画2D图像 Canvas在运行过程中画2D图像 Canvas通过像素渲染,在Canvas中,图形描绘完成后,便被浏览器遗忘,此时若要改变图形位置,整个页面需要重绘,包括任何被图形包含的对象 Canvas 解析度依赖(resolution dependent) 不支持事件处理 文字渲染能力差 可以保存为.png或者.jpg模式 适合图形密集型游戏 SVG 解析度不依赖 支持事件处理 适合需要大规模渲染的区域(Google 地图) 不适合游戏

svg学习笔记(一)

SVG——可扩展适量图形,基于XML PC端:IE9+   wap端:表现良好,适合使用 基础图形: line(线段)  <line x1="25" y1="150" x2="375" y2="50" stroke="#f00"></line> polyline(折线) <polyline points="250 75,350 100,100 0" stro

HTML5中的SVG

* SVG * 基本内容 * SVG并不属于HTML5专有内容 * HTML5提供有关SVG原生的内容 * 在HTML5出现之前,就有SVG内容 * SVG,简单来说就是矢量图 * SVG文件的扩展名为".svg" * SVG使用的是XML语法 * 概念 * SVG是一种使用XML技术描述二维图形的语言 * SVG的特点 * SVG绘制图形可以被搜索引擎抓取 * SVG在图片质量不下降的情况下,被放大 * SVG与Canvas的区别 * SVG * 不依赖分辨率 * 支持事件绑定 *

SVG 基本绘图方法总结

基本内容:   * SVG并不属于HTML5专有内容    * HTML5提供有关SVG原生的内容   * 在HTML5出现之前,就有SVG内容   * SVG,简单来说就是矢量图   * SVG文件的扩展名为".svg"   * SVG使用的是XML语法 一.概念:   * SVG是一种使用XML技术描述二维图形的语言   * SVG特点    * SVG绘制图形可以被搜索引擎抓取    * SVG在图片质量不下降的情况下,被放大   * SVG与Canvas的区别    * SVG

【Web动画】SVG 线条动画入门

CSS3 动画 javascript 动画(canvas) html 动画(SVG) 个人认为 3 种动画各有优劣,实际应用中根据掌握情况作出取舍,本文讨论的是我认为 SVG 中在实际项目中非常有应用价值 SVG 线条动画. 举个栗子 SVG 线条动画,在一些特定的场合下可以解决使用 CSS 无法完成的动画.尤其是在进度条方面,看看最近项目里的一个小需求,一个这种形状的进度条: 把里面的进度条单独拿出来,也就是需要实现这样一个效果: 脑洞大开一下,使用 CSS3 如何实现这样一个进度条呢. CS

HTML5_04之SVG绘图

1.关于Canvas绘制图像: 问题:需要绘制多张图片时,必须等待所有图片加载完成才能开始绘制:而每张图片都是异步请求,彼此没有先后顺序,哪一张先加载完成完全无法预测: 方案: var progress=0;//全局加载进度 var img=new Image(); img.src='xx.jpg'; img.onload=function(){  progress+=10;//该图片权重  if(progress===100){   startDraw();  } }2.关于Canvas中某个

蛋疼的SVG外部引用方式

SVG在html页面中有两种引用方式: 1. 内联.就是直接将SVG图形写在html的svg标签中,比如: <html> <head></head> <body> <svg ...> > ... > 内联式 </svg> > </body> </html> 2. 外部引用.就是以img标签,embed标签,object标签或iframe标签引用外部的svg文件,比如: <html>

【转】用SVG绕过浏览器XSS审计

原文 http://www.cnblogs.com/r00tgrok/p/SVG_Build_XSS_Vector_Bypass_Firefox_And_Chrome.html ====================== SVG - <use> element ====================== SVG中的<use>元素用于重用其他元素,主要用于联接<defs>和alike,而我们却用它来引用外部SVG文件中的元素元素通过其id被引用,在<use>

利用PS自动切图、支持svg且支持icoMoon——再也不用四处去转格式了

今天想导出svg格式的图片支持webFont,结果AI打不开了,文件好像损坏了,于是就想办法在PS里面导出. 网上搜索到一篇文章,腾讯的 http://isux.tencent.com/ps-photoshop-cc-fd.html, 同时还会引用到一个三方脚本  http://hackingui.com/design/export-photoshop-layer-to-svg/ , 三方脚本的一篇文章 http://www.ui.cn/detail/53284.html. 最终找到了解决办法,