实现一个基于一段文字生成一张图片的需求,其中,有一段文字需要下划线,但是不是text-decoration:underline;的样式,因为下划线要距离字一段距离,接到这个方案时,第一时间想到的就是html2canvas,但是做的过程中出现了一个小问题。
因为这一段文字不是单独存在的,所以我这边的样式最开始给的是行内元素,然后给了一个下边框,但是如果这段文字多行的时候,生成canvas的时候,会导致出现整个文字块下面出现下划线,而不是文字本身下面出现下划线的情况。
代码:
html2canvas
文字部分:总共有以下学校:小学初中高中大学小学初中高中大学小学初中高中大学小学初中高中大学小学初中高中大学小学初中高中大学小学初中高中大学小学初中高中大学小学初中高中大学生成的图片:
具体效果:
我也没有去看具体的源码,个人认为有可能html2canvas这里去生成图片的时候,把这个行内元素当做块级元素识别了。(PS:个人理解,如果有大佬知道具体原因的可以指导一下)
这里我想的是把每个字单独的塞到一个元素中去,给每个元素一个下边框,再去基于这个结构去生成,这样不管html2canvas怎么识别,每一个字都有一条单独的下划线,视觉上面有一个连在一起的效果,不就成了。
代码:
html2canvas
文字部分:总共有以下学校:5555生成的图片:
具体效果:

注意点: 要给所有文字的父元素加上一个font-size:0;,去掉各盒子之间的间隙。
个人水平有限,有问题欢迎大家留言指导,仅供学习和参考。
学海无涯!努力二字,共勉!
上一篇:描述春天放风筝的30个单词的句子