新闻中心
优化SVG路径内文本显示:动态内容与居中技巧

1. 理解SVG路径与文本显示挑战
SVG(Scalable Vector Graphics)是一种基于XML的图像格式,用于描述二维矢量图形。在SVG中,
原始代码中尝试使用
2. 使用元素在SVG路径中放置动态文本
SVG提供了
2.1 元素的基本属性
要在SVG中放置文本,至少需要指定其位置 (x, y) 和内容。
- x:文本起始点的X坐标。
- y:文本起始点的Y坐标。
- text-anchor:文本的水平对齐方式(start、middle、end)。
- alignment-baseline 或 dominant-baseline:文本的垂直对齐方式。
2.2 居中对齐与坐标确定
要将文本居中放置在SVG路径内部,我们需要:
-
确定路径的中心坐标:对于复杂的路径,直接从d属性计算精确的几何中心(质心)是复杂的。在实际应用中,通常有以下几种方法:
UXbot
AI产品设计工具
185
查看详情
- 预计算并存储:在数据源中为每个路径预先计算好其中心点的(cx, cy)坐标。这是最常见且推荐的做法,因为它将复杂的几何计算与渲染分离。
- J*aScript运行时计算:在SVG渲染后,可以使用J*aScript获取路径元素的边界框(getBoundingClientRect()或SVGElement的getBBox()方法),然后计算中心点。但这会增加客户端的计算负担,且可能在渲染时出现闪烁。
- 近似估算:对于规则形状或已知大致区域的路径,可以手动估算一个中心点。 为本教程的示例,我们将采用第一种方法,假设数据中已包含中心坐标cx和cy。
-
应用text-anchor和alignment-baseline:
- 将
元素的x属性设置为路径的中心X坐标 (cx)。 - 将
元素的y属性设置为路径的中心Y坐标 (cy)。 - 设置text-anchor="middle"使文本水平居中。
- 设置alignment-baseline="middle"(或dominant-baseline="middle")使文本垂直居中。
- 将
3. 结合Angular实现动态SVG文本渲染
在Angular应用中,
我们可以利用其数据绑定和结构指令(如*ngFor)来动态渲染SVG路径及其内部文本。
3.1 数据结构示例
首先,定义一个包含路径数据和文本信息的接口:
// src/app/data.interface.ts
export interface DataInterface {
id: string;
text: string; // 文本内容,例如国家名称
title: string; // 标题,可用于工具提示
size: number; // 文本大小或关联数值
myColor: string;
myCheck: string; // 控制文本是否显示的标志
d: string; // SVG路径数据
cx: number; // 路径中心X坐标
cy: number; // 路径中心Y坐标
}然后在组件中准备数据:
// src/app/app.component.ts
import { Component } from '@angular/core';
import { DataInterface } from './data.interface';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'svg-text-tutorial';
myData: DataInterface[] = [{
id: "IN", "text": "India", "title": "India", size: 20, "myColor": "default", "myCheck": 'true',
"d": "m 736.102,436.797l0.066,0.189l-0.062,0.104l-0.123,0.016l-0.076,-0.096l-0.009,-0.112l0.07,-0.073l0.066,-0.038L736.102,436.797zM735.947,426.258l-0.057,-0.037l-0.045,0.014l-0.042,0.05l0.018,0.398l0.089,-0.186L735.947,426.258zM735.833,430.496l-0.14,-0.13l-0.018,0.234l-0.107,0.115l0.137,0.071l0.137,-0.057l-0.017,-0.085L735.833,430.496zM736.676,427.431l-0.071,-0.892l-0.221,-0.263l0.066,-0.094l0.116,-0.25l0.149,-0.077l0.107,-0.188l0.065,-0.191l0.021,-0.087l-0.162,-0.241l0.17,-0.185l-0.028,-0.103l-0.012,-0.313l-0.093,0.004l-0.294,0.167l-0.188,0.366l0.008,0.366l-0.144,0.546l0.062,0.106l-0.067,0.354l-0.151,0.166l-0.036,0.118l0.054,0.316l-0.076,0.153l-0.032,0.212l-0.005,0.525l0.043,0.061l0.122,0.095l0.029,0.219l-0.053,0.029l-0.21,0.002l-0.051,0.064l-0.101,0.229l-0.024,0.28l-0.068,0.184l-0.115,0.054l-0.092,0.163l0.072,0.114l0.045,0.328l0.261,0.511l0.091,0.075l0.062,-0.067l0.117,-0.293l0.007,-0.357l0.086,-0.313l-0.002,-0.122l-0.093,-0.065l-0.045,-0.149l0.107,-0.12l0.036,-0.127l0.191,-0.291l0.035,-0.133l-0.045,-0.594l0.193,-0.049L736.676,427.431zM748.893,381.322l-0.023,0.141l-0.081,0.097l-0.225,0.054l-0.191,0.168l-0.304,0.243l-0.244,0.194l-0.177,0.172l-0.064,0.18l0.02,0.227l0.051,0.237l0.566,0.868l-0.005,0.15l-0.179,0.042l-0.238,-0.098l-0.205,-0.14l-0.231,-0.372l-0.186,-0.111l-0.185,-0.024l-1.1,0.191l-0.233,0.054l-0.363,0.139l-0.254,0.279l-0.185,0.255l-0.19,0.103l-0.278,0.198l-0.771,0.608l-0.445,0.262l-0.291,0.096l-0.204,0.138l-0.11,0.224l-0.083,0.161l-0.024,0.395l0.051,0.486l0.11,0.31l0.059,0.065l0.009,0.091l-0.111,0.167l-0.146,0.143l-0.071,0.088l-0.065,0.442l-0.129,0.217l-0.238,0.319l-0.211,0.241l-0.331,0.187l-0.126,0.151l-0.121,0.279l-0.071,0.236l-0.004,0.085l0.038,0.075l0.138,0.083l0.167,0.08l0.08,0.125l0.011,0.151l-0.124,0.363l-0.223,0.503l-0.255,0.398l-0.263,0.379l-0.063,0.124l-0.236,0.465l-0.206,0.639l-0.139,0.429l-0.12,0.294l-0.148,0.013l-0.179,-0.094l-0.437,-0.125l-0.279,-0.101l-0.203,-0.091l-0.141,0.004l-0.194,0.059l-0.197,0.041l-0.117,-0.044l-0.271,-0.265l-0.083,0.03l-0.053,0.129l0.183,0.756l0.119,0.281l-0.02,0.469l-0.047,0.575l-0.07,0.627l-0.047,0.145l-0.116,0.166l-0.153,0.045l-0.139,-0.065l-0.111,0.015l-0.037,0.105l0.032,0.271l-0.136,0.31l-0.1,0.265l0.026,0.257l0.048,0.261l0.159,0.564l0.001,0.206l-0.031,0.185l-0.083,0.077l-0以上就是优化SVG路径内文本显示:动态内容与居中技巧的详细内容,更多请关注其它相关文章!
# 设置为
# 滨江网络营销推广服务
# 西藏视频网站优化软件
# 池州区域seo推广
# 鹿邑网站推广价格
# 广州seo方案视频
# 青海seo培训打造
# 合肥网站建设微信开发
# 海站内seo推广系统
# 拓客营销哪家好点做推广
# 莆田新站seo优化
# 是一种
# 这是
# 显示效果
# 绑定
# css
# 时计
# 单选框
# 数据结构
# 中心点
# 表单
# 垂直居中
# ai
# 工具
# app
# svg
# html
# java
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
如何在复杂的电商平台中优雅地管理共享资源并确保正确重定向,使用spryker-shop/resource-share-page模块助你一臂之力
J*a递归快速排序中静态变量导致数据累积问题的解决方案
ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句
J*a里如何实现线程安全的懒加载单例_懒加载单例实现方法解析
《主播少女的秘密账号迷宫》首支宣传片
高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】
Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】
Python模块化编程:有效管理依赖与避免循环引用
Win11怎么设置鼠标主按键_Win11鼠标左右键功能互换
vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法
知音漫客正版漫画平台_知音漫客官网账号登录
响应式容器内容自动缩放与宽高比维持教程
QQ邮箱官方登录入口_QQ邮箱网页版快捷使用平台
TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程
抓大鹅解压小游戏 抓大鹅摸鱼解压入口
优化Log4j2控制台输出性能:解决异步日志瓶颈
C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用
俄罗斯方块最新版入口 俄罗斯方块在线玩官网入口
LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读
wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法
lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法
Python自定义类排序:解决lambda键值访问TypeError的实践指南
如何使用 Excel 发布器与 Power BI 分享 Excel 洞察
steam官方入口大全 steam账号注册及操作指南
J*aScriptWebpack优化_J*aScript构建工具实战
神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
在J*a中如何使用Stream.map转换元素_Stream映射操作解析
海棠电脑版入口_通过电脑访问海棠官网阅读
向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程
PySpark中从现有列右侧提取可变长度字符创建新列的教程
在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析
探索高级语言到C/C++的转译路径:以Go为例及内存管理策略
淘宝支付提示失败如何解决 淘宝支付流程优化方法
Yandex免登录网页版地址 Yandex搜索引擎官方访问入口
Go语言中对Map值调用带指针接收者方法:原理与最佳实践
Tabulator表格日期时间排序问题及自定义解决方案
Sublime Text怎么显示空格和制表符_Sublime显示不可见字符设置
Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录
Go调试环境为何无法启动_Go调试器启动失败原因与解决策略
TikTok国际版官网直达_TikTok国际版官网直达进入在线观看
深入理解Go语言中的指针类型:以*string为例
Web Components中自定义开关组件状态同步的常见陷阱与解决方案
抖音从哪里进入网页版_抖音官方入口链接
c++中的std::launder有什么实际用途_c++对象生命周期与指针优化
蛙漫画网页版全站入口 蛙漫热门作品免费浏览
如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式
利用5118提升短视频内容效果_5118短视频关键词优化方法
微信网页版扫码登录入口 微信网页版二维码登录入口
在J*a中如何使用Exception包装底层异常_异常包装与信息传递方法说明


2025-10-05
浏览次数:次
返回列表