扫码关注官方订阅号
代码如下:
${text} 怎样设置最后一个 text 容器的字体大小以及能根据文字长度进行换行处理?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
字体大小最好通过css来设置。
至于一般所期望的换行,当前标准的 svg 做不到。不过,可以嵌入html来解决。
参考:svg文字自动换行
昨天刚做了一个Canvas绘制文本的项目,也遇到过这种问题在网上查到一个函数!你可以参考下这个函数的思路!
/*str:要绘制的字符串canvas:canvas对象initX:绘制字符串起始x坐标initY:绘制字符串起始y坐标lineHeight:字行高*/function canvasTextAutoLine(str,canvas,initX,initY,lineHeight){
var ctx = canvas.getContext("2d"); var lineWidth = 0; var canvasWidth = c.width; var lastSubStrIndex= 0; for(let i=0;i<str.length;i++){ lineWidth+=ctx.measureText(str[i]).width; if(lineWidth>canvasWidth/8*5){ ctx.fillText(str.substring(lastSubStrIndex,i),initX,initY); initY+=lineHeight; lineWidth=0; lastSubStrIndex=i; } if(i==str.length-1){ ctx.fillText(str.substring(lastSubStrIndex,i+1),initX,initY); } }
}
没有接触过SVG得相关库,就原生SVG来说。 换行通常是通过tspan标签来实现的。 这个标签通常是嵌套在text之中,拥有者x、y、dx、dy四个和位置相关的基本属性。x,y顾名思义就是相对于text标签起点的绝对定位dx、dy则是相对于上一个tspan标签的相对定位
tspan
text
x
y
dx
dy
一般而言,每一行文字就是一个tspan标签,它们的属性要么就是dy = (行高)或者就是y = (行高 * 第几行)。你看情况选择吧。
dy = (行高)
y = (行高 * 第几行)
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
字体大小最好通过css来设置。
至于一般所期望的换行,当前标准的 svg 做不到。不过,可以嵌入html来解决。
参考:svg文字自动换行
昨天刚做了一个Canvas绘制文本的项目,也遇到过这种问题在网上查到一个函数!你可以参考下这个函数的思路!
/*
str:要绘制的字符串
canvas:canvas对象
initX:绘制字符串起始x坐标
initY:绘制字符串起始y坐标
lineHeight:字行高
*/
function canvasTextAutoLine(str,canvas,initX,initY,lineHeight){
}
没有接触过SVG得相关库,就原生SVG来说。
换行通常是通过
tspan标签来实现的。这个标签通常是嵌套在
text之中,拥有者x、y、dx、dy四个和位置相关的基本属性。x,y顾名思义就是相对于text标签起点的绝对定位dx、dy则是相对于上一个tspan标签的相对定位一般而言,每一行文字就是一个
tspan标签,它们的属性要么就是dy = (行高)或者就是y = (行高 * 第几行)。你看情况选择吧。