SVG DEFS元素、SYMBOL元素和USE元素


 SVG DEFS元素

SVG的<defs>元素用于预定义一个元素使其能够在SVG图像中重复使用。例如你可以将一些图形制作为一个组,并用<defs>元素来定义它,然后你就可以在SVG图像中将它当做简单图形来重复使用。看下面的例子:

< svg xmlns = "http://www.w3.org/2000/svg" >
   < defs >
       < g >
           < rect x = "100" y = "100" width = "100" height = "100" />
           < circle cx = "100" cy = "100" r = "100" />
       </ g >
   </ defs >
</ svg >                           

<defs>元素中定义的图形不会直接显示在SVG图像上。要显示它们需要使用<use>元素来引入它们。如下面的代码所示:

< svg xmlns = "http://www.w3.org/2000/svg"
   < defs >
     < g id = "shape" >
         < rect x = "50" y = "50" width = "50" height = "50" />
         < circle cx = "50" cy = "50" r = "50" />
     </ g >
   </ defs >
 
   < use xlink:href = "#shape" x = "50" y = "50" />
   < use xlink:href = "#shape" x = "200" y = "50" />
</ svg >                          

要引用<g>元素,必须在<g>元素上设置一个ID,通过ID来引用它。<use>元素通过xlink:href属性来引入<g>元素。注意在ID前面要添加一个#

<use>元素中,通过xy属性来指定重用图形的显示位置。注意在<g>元素中的图形的定位点都是0,0,在使用<use>元素来引用它的时候,它的定位点被转换为<use>元素xy属性指定的位置。

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

上面SVG图像中绿色的圆点并不是示例代码的一部分。它们是用来显示2个<use>元素的xy坐标的。

哪些元素可以被定义为defs中的元素呢?

你可以将下面的元素放入到<defs>元素中使用:

  • 任何图形元素,如:rectline
  • g
  • symbol

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值