SVG_16_defs标签_use标签_style标签_红绿灯效果

知识点:

  • defs标签

SVG 允许我们定义以后需要重复使用的图形元素。建议把所有需要再次使用的引用元素定义在defs元素里面。这样做可以增加SVG内容的易读性和可访问性。在defs元素中定义的图形元素不会直接呈现。 你可以在你的视口的任意地方利用 <use>元素呈现这些元素。

 

  • use标签

通过defs定义好被引用的标签或标签组后,再使用use标签进行引用。

use元素在SVG文档内取得目标节点,并在别的地方复制它们。它的效果等同于这些节点被深克隆到一个不可见的DOM中,然后将其粘贴到use元素的位置,很像HTML5中的克隆模板元素。因为克隆的节点是不可见的,所以当使用CSS样式化一个use元素以及它的隐藏的后代元素的时候,必须小心注意。隐藏的、克隆的DOM不能保证继承CSS属性,除非你明文设置使用CSS继承。

出于安全原因,一些浏览器可能在use元素上应用同源策略,还有可能拒绝载入xlink:href属性内的跨源URI。

 

  • style标签

style元素样式表直接在SVG内容中间嵌入。SVG的style元素的属性与HTML中的相应的元素并无二致,功能是一样的,只不过SVG把style封装成了标签形式。

 

重点提醒:

  • defs标签中定义的控件,需要配置ID属性,然后style引用时,通过#id获取引用。还可以使用控件的名称,比如circle定义控件属性。

<style>    #cir_red {      fill: red;      stroke: black;      stroke-width: 10px;     }</style>

 

 

  • use标签使用xlink:href=“#id”l来进行引用

使用use标签时,注意use的结尾标签,不要在</use>结尾标签之前再写其他标签,会显现不出来,就是所谓的被吞了。

 

先看效果,这次做的效果是红绿灯

 

效果被吞,估计是由于use同源策略被吞了,效果显示不出来,不过我还有录屏。

红绿灯

 

Xi说孔方兄认证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

King·Forward

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值