首页 > 其他分享 >svg foreignObject 作用总结

svg foreignObject 作用总结

时间:2023-08-13 16:23:32浏览次数:42  
标签:总结 dom 换行 svg black foreignObject 图片

svg foreignObject主要能实现 文本换行 和 dom转图片 两个功能

1. svg文本换行

svg文字功能很弱,不支持自动换行,需要用tspan进行截断

<svg xmlns="http://www.w3.org/2000/svg">
  <text font-size="16">
    <tspan x="0" y="10">这个是一段要换</tspan>
    <tspan x="0" y="26">行的文字</tspan>
  </text>
</svg>

foreignObject支持直接嵌套dom,可利用dom实现换行

<svg xmlns="http://www.w3.org/2000/svg">
  <foreignObject wwidth="100%" height="100%">
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="font-size:20px;">这个是一段要换行的文字</div>
      </body>
    </foreignObject>
</svg>

2. dom转图片

dom转图片,即所谓的网页截图,不光是截图这么简单,dom绘制的一些效果可以直接转换为svg图片,使用svg图片做一些效果,例如 背景图,mask遮罩图等,比直接用svg实现方便很多。并且 foreignObject 支持包含style标签,支持 各种样式 和 animation,可实现复杂效果

foreignObject包含的dom,可直接使用 svg文件或内联 的方式来使用图片,方便快捷,还可修改

当然也可以将svg的图片通过canvas.toDataURL转换为png或jpg图片,实现截图功能,具体可参考 使用svg进行网页截图

例如下面可实现一个自适应的边框模糊矩形

<svg xmlns="http://www.w3.org/2000/svg">
  <foreignObject width="100%" height="100%">
    <body class="wrap" xmlns="http://www.w3.org/1999/xhtml">
      <style>
        .wrap{
          box-sizing: border-box;
          margin: 0;
          height: 100%;
          padding: 10px;
        }
        .shadow{
          height: 100%;
          background:black;
          border-radius:10px;
          box-shadow:0 0 5px black, 0 0 10px black, 0 0 15px black
        }
      </style>
      <div class="shadow"></div>
    </body>
  </foreignObject>
</svg>

 

 


参考:CSS 如何实现羽化效果

标签:总结,dom,换行,svg,black,foreignObject,图片
From: https://www.cnblogs.com/mengff/p/17626696.html

相关文章

  • 第五周总结
    周一:明确学习目标和资源准备本周的第一天,我将明确自己的学习目标,确定学习重点和方向。我计划阅读相关的大数据领域的书籍和文档,如《大数据导论》、《Hadoop权威指南》等,以了解各种大数据技术和工具的基本概念和应用场景。此外,我也会寻找一些在线学习资源和教程,如网课、博客和视频......
  • 周总结5
    1、java的三大平台分别为javaSE、javaEE、javaME,其中javaSE是基础。2、javaSE由四部分组成,分别为JVM、JRE、JDK、java语言。3、java不仅是一门程序语言,还是一种标准,我认为,这种标准体现在它可以JYM平台实现跨平台的功能。JCP是一个组织,JSR为一种提交文件的方式,其目的可以理......
  • SpringMVC总结
    SpringMVC:Web层框架 @RestControll @Controller实例化对象,并添加到容器 @ResponseBody将返回结果转换为JSON格式 @RequestMapping(value="url可以定义多个",method=POST|GET)映射请求地址 value映射地址可以定义多个 method如果不写,则默认匹配所有请求方式。 @RequestPara......
  • 8月5号到8月12号。假期周总结
    8月5号到8月12号。周日我看了一下Python的课程二进制编码,标识符保留四变量的定义使用,还有给变量赋值数据的类型。周一我学习了Python的输入输出运算符的使用方法,有运算符的优先级。还有分支结构,单分支结构,双分支结构,多分支结构,嵌套的分支结构。我还学习了一下条件表达式。周二我......
  • 暑假第六周总结
    在本周,我学习的内容很少,因为我在本周选择了出去旅行放松身心。在这一周中,我带着我的弟弟去了北京。这是我半年前答应好他的,在这个暑假我来实现这个承诺。说是带他去北京,但是这也是我为数不多去北京的机会,之前因为年纪小去过的景点都有些忘记,这一次去又是一种全新的体验......
  • 第七周训练总结
    比赛总结牛客多校第七场1/2/13AC:M补题:C总结:开题445,各自读题,wyf读完M后发现是签到题,开始写M。第一发int溢出wa了,后来改longlong通过。然后榜上C和I题过的较多,先集中想的I题,很快出了一个思路,但是在构思如何实现的时候发现思路是错误的,觉得I题的求解比较麻烦,放掉。然后三个......
  • 8.12-晚上阵列总结
    第一种情况:物体的长是19.5宽是32.72x方向间距为15y方向间距为30  第二种情况 第三种情况 ......
  • 8.12第六周总结
    //验证手机号方法functionvailPhone(){varphone=\(("#phone").val();varmyreg=/^(((13[0-9]{1})|(14[0-9]{1})|(17[0]{1})|(15[0-3]{1})|(15[5-9]{1})|(18[0-9]{1}))+\d{8})\)/;if(phone==''){$('#tip').text('手机号码不......
  • 【总结】排序算法的时间复杂度和空间复杂度
    排序算法的时间复杂度和空间复杂度最好时间复杂度最坏时间复杂度平均时间复杂度空间复杂度是否为稳定排序是否为原地排序冒泡排序$O(n)$初始数组正序$O(n^2)$初始数组逆序$O(n^2)$$O(1)$原地使用数组,无额外内存开销是是插入排序是是选择排序$O(n......
  • AXI传输总结+页面置换算法+不定态判定+PATH管理
    AXI传输总结AXI这部分我没有深入解除过,只是多多少少摸一下看下数据路径有没有传过去,总感觉不到难点在哪里,不就是一个传输协议吗?这个是soc设计方法与实现中提供的附录,可供参考,但是有版本错误(AXI4不支持写的交织,没有WID)https://www.hxedu.com.cn/hxedu/w/inputVideo.do?qid=5a79......