Javascript 有没有一种有效的方法使文本的一部分在画布上具有不同的样式?

Javascript 有没有一种有效的方法使文本的一部分在画布上具有不同的样式?,javascript,html,text,html5-canvas,font-style,Javascript,Html,Text,Html5 Canvas,Font Style,HTML5的某些方面,尤其是Canvas,似乎仍停留在文字处理器之前的软件时代,即60年代,当时只有打字机存在 (本期)首先,你不能简单而有效地将一个单词或一个句子加粗,或在同一篇文章中划出下划线。 Filltext只是用一段文字和一种样式填充画布,就这样 (顺便说一句,第二个问题是canvas两边都缺少文本证明函数,所以我不得不自己使用JavaScript创建这样一个函数。 第三个问题是一个bug,它阻止在后续画布操作中更改多个自定义字体,除非您在启动后预先使用它们(!)(我发现这是一个经过多

HTML5的某些方面,尤其是Canvas,似乎仍停留在文字处理器之前的软件时代,即60年代,当时只有打字机存在

(本期)首先,你不能简单而有效地将一个单词或一个句子加粗,或在同一篇文章中划出下划线。 Filltext只是用一段文字和一种样式填充画布,就这样

(顺便说一句,第二个问题是canvas两边都缺少文本证明函数,所以我不得不自己使用JavaScript创建这样一个函数。 第三个问题是一个bug,它阻止在后续画布操作中更改多个自定义字体,除非您在启动后预先使用它们(!)(我发现这是一个经过多次努力后才找到的解决方法)

所以我想到了两种解决方法:

  • 找到要更改样式的一组单词,使用“measureText”计算起始x、y位置和总长度,第一次使用空格替换,然后第二次使用空格,只在空白处写入具有不同样式的单词

  • 在同一自定义字体和同一语言上嵌入2个或多个样式,就像它们在Unicode中是不同的语言一样

  • 还有其他解决办法吗


    如果我遗漏了什么,或者有人有一个不错的想法,我会问你。

    为了让你得到答案,我建议你针对每个单独的问题提出一个问题,以简洁的方式展示一些代码和你想要的东西。你试过其中一个吗:,?我只问一个问题——我提到的第一个问题是also在标题上。您的评论中没有任何链接解决此问题。我以前创建过javascript,它使用measureText将多样式文本绘制到画布上,但大多数情况下,最好覆盖另一个html元素,其中包含使用普通html和css样式的文本。画布元素主要用于无法轻松完成的事情正常的html元素和样式文本是正常的html元素做得很好的事情。是的,但是我的项目依赖于画布作为一个必要的步骤来完成html元素根本无法完成的事情,比如3D和VR,这就是为什么我首先使用画布。有趣的是,尽管VR呈指数级增长,画布已经被保留了下来在凯奇时代,所以每个人都必须自己制作所有缺失的功能。想象一下,浪费了数千个工时……这是技术发展的另一个障碍(其中很多)*cave man era…为了让你得到答案,我建议你对每个孤立的问题都提出一个问题,用简洁的方式展示一些代码和你想要的东西。你试过其中一个吗?,?我只问一个问题——我提到的第一个问题,也在标题上。你评论中的链接都没有提到这个问题。我以前创建过javascript,它使用measureText将多样式文本绘制到画布上,但大多数情况下,最好覆盖另一个html元素,该元素包含使用普通html和css样式的文本。画布元素主要用于普通html元素无法轻松完成的事情,而文本样式则是普通html元素nts做得很好。是的,但我的项目依赖于画布,这是HTML元素根本无法完成的事情的一个必要步骤,比如3D和VR,这就是为什么我首先使用画布。有趣的是,尽管VR呈指数级增长,但画布仍停留在cage时代,因此每个人都必须自己制作所有缺失的功能。想象一下,浪费了数千个工时……这是技术发展的另一个障碍(在众多技术中)。*穴居人时代。。。