学习SVG(八)文本

2023-11-18

简介

在SVG中除了绘图外,还可以添加文本。需要使用<text> 元素在画布中创建文本,使用<tspan>元素进行多行文本创建,使用 <textPath> 让文本在指定的路径上排列。

text

  • text 根据x和y值作为元素内容第一个字符的基线位置。默认样式黑色填充,和其他图形一样可以使用fill修改填充颜色。
  • 常用属性:
  1. font-family 字体设置。
  2. font-size 字体大小。
  3. font-weight 字体粗体设置。
  4. font-style 字体样式。
  5. text-anchor 对齐方式。start(左对齐),middle(中间对齐),end(右对齐)
  6. text-decoration 划线设置。underline(下划线),overline(上划线),line-through(删除线)
  • 示例
<text x="10" y="15" fill="red" text-decoration="line-through">学习SVG(八)文本</text>

在这里插入图片描述

tspan

  • text元素无法对文本进行换行,这时候就需要使用tspan元素。
  • 除了text元素的属性外,还有以下属性:
  1. dx,dy x和y方向的偏移。
  2. x,y 设置tspan元素位置。
  3. rotate 旋转字符,可以同时设置多个值。
  4. baseline-shift 设置文本为上下标。值 super上标,sub下标。
<text x="10" y="30" fill="red" text-decoration="line-through">
    <tspan>学习</tspan>
    <tspan font-size="12" baseline-shift="super">SVG(八)</tspan>
    <tspan x="10" y="50">文本</tspan>
</text>

在这里插入图片描述

textPath

  • textPath元素,使文本沿着某条路径排列。
<defs>
    <path id="path" d="M30 40 C 50 10 ,70 10,120 40 S150 0,200 40" style="fill: none"></path>
</defs>
<text>
    <textPath xlink:href="#path" startOffset="50%" text-anchor="middle">学习SVG(八)文本 - 哈</textPath>
</text>

常用方式

纵向文本

  <text x="0" y="30">
    <tspan x="-130" writing-mode="tb">学习SVG(八)文本</tspan>
  </text>

在这里插入图片描述

  • 注意设置纵向文本后,文本的位置还在正向文本最后的位置。

设置一行文本不同样式

<text x="10" y="20">
    学习SVG
    <tspan x="80" dx="0 10 20 10 30" rotate="30" font-weight="bold">学习SVG</tspan>
</text>

在这里插入图片描述

总结

这里简单的介绍了文本的使用。除了上面介绍的效果,通过属性的其他的组合还能实现更有趣的效果。比如按路径排列文本,设置文本在路径中间展示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习SVG(八)文本 的相关文章

  • 使用 SkiaSharp 在 Xamarin 中加载 SVG 文件

    从版本 1 55 0 开始 SkiaSharp 支持读取 SVG 文件 该软件包已于几天前发布 2016 年 11 月 10 日 但我找不到足够的有关如何使用它的文档 需要以下包 SkiaSharp 1 55 0 SkiaSharp 视图和
  • 获取现有 SVG 元素的属性并使用 d3.js 绑定为数据

    我有一个现有的 svg 元素 例如
  • FloorPlanner 应用程序的 SVG/Canvas 与 Flash

    我计划创建一个平面图应用程序 允许用户使用鼠标绘制 调整大小 移动和旋转对象 我只是想知道使用 Flash 或 Javascript 是否会更好 如果使用 Javascript 我应该使用 canvas 还是 SVG 该应用程序将允许拖动选
  • Blazor / SVG 实时更新

    我正处于使用 Blazor 开发实时 Web 应用程序的早期阶段 目的是在网页上显示与某些设备的状态有关的实时状态更新 它是机器的 HMI 可以将其视为具有实时数据更新的仪表板 机器的图形模型将使用 SVG 完成并托管在应用程序中 我正在尝
  • SVG 过滤器在 Firefox 中不显示,在 Chrome 中工作正常

    我想要深色背景上的一段深色文本外面有白色的光芒 虽然默认阴影滤镜 https developer mozilla org en US docs Web CSS filter drop shadow 2在 CSS 中 比如filter dro
  • 获取SVG绘图的边界框

    我想提取 SVG 绘图的边界框 由于 Python 已经在系统上可用并且还用于执行其他任务 因此我不想使用 JavaScript 或任何其他语言 我的理解是是否可以计算单个元素的边界框 但我不知道如何计算 整个绘图的边界框只是所有元素的最小
  • 快速响应的交互式图表/图形:SVG、Canvas 还是其他?

    我正在尝试选择正确的技术来更新一个项目 该项目基本上在可缩放 可平移的图表中渲染数千个点 当前使用 Protovis 的实现性能不佳 在这里查看 http www planethunters org classify http www pl
  • CSS 中的 Data-URI SVG 背景在 Firefox 中不起作用

    好的 这就是我想做的 我的 css 文件中有这段代码 form row textfield hover textfield m hover background image url data image svg xml base64 PHN
  • 修复 Raphaël 路径节点上 Tipsy 工具提示的位置

    这是一个非常具体且有些复杂的问题 所以我设置了一个最小测试用例 http reveal dk 8080 revealit dk tipsytest 在阅读本文的其余部分之前 您可能应该先了解一下 我的页面显示悬停时突出显示区域的图像Raph
  • 滚动在 chrome 中的 svg 异物内不起作用

    我在 svg 异物中有 div 带有溢出 auto 滚动仅适用于鼠标滚轮 无法拖动栏 它适用于 Firefox 但不适用于 chrome safari 如果 svg g 元素上没有转换 它就可以工作 参见小提琴 http jsfiddle
  • d3 饼图中的文本被路径覆盖

    我正在尝试按照 d3 的饼图示例进行操作http bl ocks org mbostock 3887235 http bl ocks org mbostock 3887235 我的代码的最小示例 const container graph
  • 将 SVG 多边形转换为路径

    我有一个相当大的行政分区 SVG 文件 需要在 Raphael JS 中使用 它有 600 个多边形 重量为 1 2 Mb 现在 我需要将这些多边形转换为路径 以便它在 Raphael 中工作 最棒的多路径工具 http aautar di
  • 悬停时的 SVG 过滤器标签

    我正在尝试通过此过滤器对 SVG 进行动画处理
  • 使用 classed("active",true) 鼠标悬停时 D3 颜色变化

    我是 js 和 D3 的新手 我已经生成了某种热图 并且想使用 D3 的 on mouseover 更改图块的颜色 我可以显式更改颜色 但想使用 CSS 活动规则 可能是一些简单的东西可以修复 任何帮助将不胜感激 完整代码如下 Thanks
  • 如何制作一条带有边框的 SVG“线”?

    我有一个小 svg 小部件 其目的是显示角度列表 参见图片 现在 角度是线元素 只有描边 没有填充 但现在我想要一个 内部填充 颜色和周围的 描边 边框 我猜 line 元素无法处理这个问题 那么我应该使用什么来代替呢 请注意 线条笔划的线
  • jsPlumb:如何使流程图连接器避免元素相交?

    是否可以使 jsPlumb Flowchart 连接器不交叉可连接的项目或指定元素 在示例中 具有 item 类的元素 默认流程图行为 想要的结果 这是我尝试过的 http jsfiddle net CcfTD 1 http jsfiddl
  • Android和播放SVG动画

    我正在编写一个 Android 应用程序 我想播放一个简单的 SVG 动画 我知道 Android 不提供 SVG 支持 我在这里有什么选择 从 Android Lollipop API 级别 21 开始 可以使用动画矢量Drawable
  • 在 SVG 中绘制空心形状

    我想在 SVG 中绘制一个中心被挖空的形状 我问这个问题是为了画一个中间有一个圆的圆here https stackoverflow com questions 8193675 draw a hollow circle in svg 819
  • 在 SVG 路径中动态创建渐变层

    我正在使用 SVG 创建动态路径 我现在希望在我的路径中添加渐变 但我被困住了 按照我尝试的方式 我的渐变沿着图 2 所示的路径进行 而我要求它是图 1 中的那种 Current 我的渐变和描边定义如下
  • 渲染时 Flutter SVG 延迟

    我在行中显示 SVG 文件形式的图像和文本 由于某些原因 svg 图像的渲染速度比屏幕的其余部分慢 从而导致延迟 这不利于用户体验 这种延迟正常吗 我该怎么做才能使整个屏幕同时渲染 Row mainAxisAlignment MainAxi

随机推荐

  • 分析排序算法的时间复杂度和空间复杂度

    1 冒泡排序 时间复杂度 O n 2 空间复杂度 O 1 冒泡排序需要进行n 1趟冒泡 每一趟需要比较n i次 最坏情况下需要交换n 1次 故时间复杂度为O n 2 冒泡排序的空间复杂度是O 1 因为只需要使用一个临时变量即可 2 选择排序
  • 【C++】动态内存管理和泛型编程

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 C C 内存区域划分 二 常见变量存储区域 三 new
  • 程序员必知,招聘黑话大全!

    大家周末愉快 今天分享 IT 行业一些常见的招聘术语 准备参加面试的朋友一定要知道 Base base 有两层含义 对于薪资来说 base 即为你的基本薪资 假设你的薪资组成为 20k 16 签字费 股票 这个 20k 则为你的薪资 bas
  • C++中的引用

    一 引用 引用不是定义一个新的变量 而是给一个已有的变量起一个别名 类型 引用变量名 已定义过的变量名 注 1 一个变量可以有多个别名 2 引用必须初始化 3 引用只能在初始化时引用一次 不能在成为其他变量的别名 include
  • 深度神经网络在NLP的应用!

    关注后 星标 Datawhale 每日干货 每月组队学习 不错过 Datawhale干货 作者 张泽 华东师范大学 Datawhale优秀学习者 深度学习正在给自然语言处理带来巨大的变革 例如机器翻译 情感分析 问答系统等落地实践 深度学习
  • RT-Thread之线程的诞生与消亡史

    1 引言 本文基于Cotex M内核处理器分析讨论RT Thread中线程从创建到消亡的整个详细过程 线程的载体 控制块 RT Thread中是用线程控制块来描述线程实体的 在 RT Thread 中 线程控制块由结构体 struct rt
  • 数字化信道

    数字化信道 数字化信道主要包括多相滤波和DFT两个模块 多相滤波 多相滤波 就是将滤波器系数按照相数进行重排 在D倍抽取后 整个频带的频谱将混叠在0频附近 F s
  • 二分查找的总结

    一 二分查找 1 思路分析 这道题目的前提是数组为有序数组 同时题目还强调数组中无重复元素 因为一旦有重复元素 使用二分查找法返回的元素下标可能不是唯一的 这些都是使用二分法的前提条件 当大家看到题目描述满足如上条件的时候 可要想一想是不是
  • 2022第十三届蓝桥杯国赛真题javaB组

    文章目录 试题A 重合次数 试题B 数数 试题C 左移右移 试题D 窗口 试题E 迷宫 试题F 小球称重 试题G 背包与魔法 试题H 修路 试题I 围栏 试题J 好数之和 试题A 重合次数 本题总分 5 分 问题描述 在同一天中 从上午6
  • eclipse debug进入.class_Eclipse的安装与使用

    相信大家在用记事本编译运行java程序的同时肯定心里有不少怨言吧 要是用这种工具编译一个复杂点的程序简直就有想死的心了 更不用说什么大的网站项目了 接下来阿Q就带领大家了解一个全新的编译工具Eclipse Eclipse的安装 首先进入ec
  • JS字符串转数字

    目录 parseInt parseFloat Number JavaScript中有三种方法可以将字符串转换为数字 parseInt parseInt 函数可以将字符串转换成整数 它会忽略字符串的开头空格 并读取尽可能多的数字字符 直到遇到
  • 2.4.5 Profile CPU参数

    最后更新2021 07 19 CPU的状态 参数表现出来的是分区的状态和参数 Power 6 7小型机 分区有3种模式 Shared Dedicated Shared dedicated partition Dedicated分区同时选择了
  • 求职笔记-操作系统-动态链接库、静态链接库区别

    dll什么意思 动态链接库 存放的是各类程序的函数实现过程 当程序需要调用函数时 需要先载入DLL 然后取得函数的地址 最后进行调用 使用DLL文件的好处是程序不需要在运行之初加载所有代码 只有在程序需要某个函数的时候才从DLL中取出 还可
  • linux防火墙 ( cent7.*)常用操作:

    cent7 防火墙操作 注意开通或关闭端口后 一定要重启防火墙服务 重装防火墙 不然无法生效 1 查看 系统防火墙是否开启 firewall cmd state 2 开启 关闭 重启访火墙 永久关闭防火墙 必须先临时关闭防火墙 再执行该命令
  • Mac终端如何查找具体文件的详细路径

    find 命令 find iname test Boston CSV csv
  • 毕业设计-基于计算机图像识别的垃圾智能分类系统

    目录 前言 课题背景和意义 实现技术思路 一 YOLOv3 算法 二 基于 Tensorflow2 的 YOLOv3 算法垃圾识别 三 总结 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业
  • win10远程桌面连接提示身份验证错误,要求的函数不受支持的解决方案

    报错信息 出现问题的原因是微软最近发布的更新补丁 要求服务器端和用户端都更新后才可以连接 最简单粗暴地方式就是卸载自己电脑的更新 而下面的这种方法需要修改注册列表 解决方案 1 WIN R 然后运行 regedit 命令 2 找到路径 HK
  • MySQL——无法打开MySQL8.0软件安装包或者安装过程中失败,如何解决?

    在运行MySQL8 0软件安装包之前 用户需要确保系统中已经安装了 Net Framework相关软件 如果缺少此软件 将不能正常地安装MySQL8 0软件 解决方案 到这个地址 https www microsoft com en us
  • 51 单片机占用 RAM 分析

    51 单片机占用 RAM 分析 简介 很久不用 51 单片机了 再拿起 51 的东西 发现之前学的时候遗漏很多细节 比如 RAM 的占用情况 都哪些会占用 RAM 空间 当时学习的时候从来没有注意过 包括用上 32 位的 MCU 之后也不怎
  • 学习SVG(八)文本

    简介 在SVG中除了绘图外 还可以添加文本 需要使用