有没有办法只更改画布上下文的字体大小而不必知道/写入字体系列.
var ctx = document.getElementById("canvas").getContext("2d"); ctx.font = '20px Arial'; //Need to speficy both size and family...
注意:
ctx.fontSize = '12px'; //doesn't exist so won't work... ctx.style.fontSize = '20 px' //doesn't exist so won't work... //we are changing the ctx,not the canvas itself
其他注意事项:我可以做一些类似的事情:检测’px’的位置,删除’px’之前的内容并将其替换为我的字体大小.但如果可能的话,我会喜欢一些比这更容易的东西.
解决方法
更新:(从评论)没有办法指定字体. Canvas的字体是在CSS中的短版字体之后建立的.
但是,总是在画布上设置一个字体(或字体类型),所以您可以使用以下方式首先提取当前字体:
var cFont = ctx.font;
然后替换大小的参数并将其设置(注意,也可能有一个样式参数).
一个简单的分裂为例:
var fontArgs = ctx.font.split(' '); var newSize = '12px'; ctx.font = newSize + ' ' + fontArgs[fontArgs.length - 1]; /// using the last part
如果需要,您将需要支持风格(如果使用IIRC则首先使用).请注意,font-size是第四个参数,所以如果你没有font-variant(粗体,斜体,斜),font-variant(普通,小帽)和font-weight(bold等) .