#6 文字的渲染

文字的渲染和css样式中的font属性设置很相识,其理念是相通的

几个常用属性:

  • font
  • fillText(), strokeText(): 注意最后有个可选参数'maxLength',用来设置文字的宽度
  • textAlign, textBaseline
  • mesureText(string).width: 获取字符串显示的宽度(单位: px)

一.渲染文字

最基本的示例:

ctx.font = 'bold 20px Arial';

// 这个fillStyle 可以使用
// createPattern中函数进行更丰富的设置
ctx.fillStyle = 'red'
ctx.fillText('hello canvas', 100, 100)

当然也可以使用 strokeText() 对字体进行描边

二.API 讲解

1.fillText() | strokeText()

函数签名:

/*
 * @param string: 就是要绘制的文字
 * @param x, y: 绘制开始的坐标(x, y)
 * @param [maxLen]: 可选参数,绘制上面文字,允许的最大宽度
 */
fillStyle(string, x, y, [maxLen])
strokeStyle(string, x, y, [maxLen])

示例:

fillText('hello canvas', 100, 100)
fillText('hello canvas', 100, 200, 400)

2.font

默认值: '20px sans-serif'

ctx.font =
  font-style font-variant font-weight
  font-size font-family

可以看出和css中font的设置一样,但是canvas中如果设置font则至少要设置字体大小和字体类型2个值

说一下比较少见的font-variant属性:

font-variant: normal (默认值)
              small-caps // 表示字号不变,将字母设置为大写 

3.textAlign 文本对齐

这个和css中 text-align一致,用来绘制横向坐标对齐:

ctx.textAlign = left
                center
                right

4.textBaseline

这个和css中 vertical-align一致,用于设置文本的基准线对齐方式:

ctx.textBaseline = top
                   middle
                   bottom

5.measureText(string).width

计算渲染文字的宽度

调用这个函数之前必须先设置好font属性,因为font属性会影响这个属性的值

ctx.measureText(string).width

总结

文字的绘制和css样式中设置文字的属性比较相似,当时canvas中的一些其它属性,比如fillStyle, strokeStyle等使得文字更加的强大

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • HTML标签解释大全 一、HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(D...
    米塔塔阅读 3,331评论 1 41
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,101评论 0 1
  • 1.块级元素和行内元素 块级(block-level)元素;行内(内联、inline-level)元素。 块元素的...
    饥人谷_小侯阅读 2,050评论 1 4
  • 隔着一扇门,她,低头沉默。他,盯着手上她还给他的戒指,这个时候的空气是那么的安静,外面还在飘着雪花。接着,他转身...
    劉紹東阅读 249评论 0 1