SVG 文本(一)text、tspan 的基本使用

简介: SVG 文本(一)text、tspan 的基本使用

一、简介

  • SVG 通过 <text><tspan> 创建文本,支持 <a> 插入超链接,可以通过 <textPath> 让文本在指定的路径上排列。
  • <text><tspan>基本属性:
  • x、y:定位标准
  • dx、dy:字形偏移
  • style:设置样式

二、text

  • 案例
<svg xmlns="http://www.w3.org/2000/svg" width="600" height="400">
    <defs>
      <!-- 网格 -->
      <pattern id="grid" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse">
        <path fill="none" stroke="#f1f1f1" d="M 0 0 H 20 V 20"/>
      </pattern>
    </defs>
    <!-- 设置网格 -->
    <rect width="600" height="400" fill="url(#grid)"/>
    <!-- 小格子内容 -->
    <text x="20" y="20">文本测试</text>
    <!-- 基线对齐效果 -->
    <path d="M 100 0 V 300 M 0 100 H 400 M 0 200 H 400 M 0 300 H 400" stroke="red"/>
    <text x="100" y="100" style="font-size: 50px;">DZM 文本测试</text>
    <!-- dx dy 测试 -->
    <text x="100" y="200" style="font-size: 50px;" dx="10" dy="10">DZM 文本测试</text>
    <text x="100" y="300" style="font-size: 50px;" dx="20 40 60 80" dy="20 20 20 20 20">ABCDEFG</text>
</svg>

三、tspan

  • tspan 标签支持单独配置 dx dy,优先使用自身自带的,后续文字如果没有单独配置,会自动继承上一个文字的 dx dy
<svg xmlns="http://www.w3.org/2000/svg" width="600" height="400">
    <defs>
      <!-- 网格 -->
      <pattern id="grid" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse">
        <path fill="none" stroke="#f1f1f1" d="M 0 0 H 20 V 20"/>
      </pattern>
    </defs>
    <!-- 绘制网格 -->
    <rect width="600" height="400" fill="url(#grid)"/>
    <!-- 基线对齐效果 -->
    <path d="M 100 0 V 300 M 0 100 H 400 M 0 200 H 400 M 0 300 H 400" stroke="red"/>
    <text x="100" y="100" style="font-size: 50px;">
      <tspan fill="red">AB</tspan>
      <tspan stroke="blue" stroke-width="2" fill="red">CDE</tspan>
      <tspan fill="blue">FG</tspan>
    </text>
    <!-- 测试 dx dy 在 tspan 身上的效果 -->
    <text x="100" y="200" style="font-size: 50px;">
      <tspan fill="red" dy="-20">AB</tspan>
      <tspan stroke="blue" stroke-width="2" fill="red" dy="20 -10">CDE</tspan>
      <tspan fill="blue">FG</tspan>
    </text>
    <!-- 测试 dx dy 在 tspan 身上的效果 -->
    <text x="100" y="300" dy="30" style="font-size: 50px;">
      <tspan fill="red">AB</tspan>
      <tspan stroke="blue" stroke-width="2" fill="red" dy="20 -10">CDE</tspan>
      <tspan fill="blue">FG</tspan>
    </text>
</svg>

目录
打赏
0
0
0
0
270
分享
相关文章
SVG 文本(二)路径文本 <textPath>
SVG 文本(二)路径文本 <textPath>
313 0
|
11月前
Appium使用UiSelector封装文本定位方法find_element_by_text
Appium使用UiSelector封装文本定位方法find_element_by_text
117 1
使用OCR库Pix2Text执行p2t.recognize()时出现list index out of range的错误信息(附有Pix2Text识别图片内容和laTex公式的代码)
有时候报错并不是你代码有问题,源码出错也是很常见的情况,比如之前使用mxgraph也出现了不知名bug,最后也是修改的源码解决的。有疑问欢迎交流~ 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
159 0
【微信小程序】-- 常用的基础内容组件介绍 -- text & rich-text & progress & icon(七)
【微信小程序】-- 常用的基础内容组件介绍 -- text & rich-text & progress & icon(七)
Base64如何切割后面的内容,如何提取data:image/png;base64,之后的内容,Vue中.split中截取的数组如何使用数组进行获取
Base64如何切割后面的内容,如何提取data:image/png;base64,之后的内容,Vue中.split中截取的数组如何使用数组进行获取
|
11月前
Appium文本定位方法实现find_element_by_text
Appium文本定位方法实现find_element_by_text
94 0
css3的text(文本)
css3的text(文本)
72 0
Jquery操作文本内容(三个方法:html()、text()、var())
Jquery操作文本内容(三个方法:html()、text()、var())

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等