基础

画布除了绘制图形以外还可以绘制文本,画布中的文本可以设置字体大小、字体格式、对齐方式(横向和纵向对齐方式),并且还可以制作很炫酷的文本,比如渐变文字。

文本有以下三个属性,控制文本的字体大小、字体格式和对齐方式:

属性 描述
font 设置或返回文本内容的当前字体属性
textAlign 设置或返回文本内容的当前对齐方式
textBaseline 设置或返回在绘制文本时使用的当前文本基线

完成文本的绘制有 fillText 和 strokeText:

方法 描述
fillText(text, x, y) 在画布上绘制有填充文本
strokeText(text, x, y) 在画布上绘制无填充文本
measureText(text) 返回包含指定文本宽度对象

方法

fillText

fillText 用于绘制非镂空的文本,即文字是完全填充的:

ctx.beginPath();
ctx.font = '25px Georgia';
ctx.fillText('Hello World!', 150, 150);

strokeText

strokeText 用于绘制镂空的文本:

ctx.beginPath();
ctx.font = '25px Georgia';
ctx.strokeText('Hello World!', 150, 150);

属性

textAlign

文本对于 Y 轴的对齐方式,用 textAlign 设置,有以下五个属性值:

属性值 描述
left 文字左对齐
center 文字中间对齐
right 文字右对齐
start 文字左对齐,与 left 等效
end 文字右对齐,与 right 等效
ctx.font = '15px Georgia';

ctx.beginPath()
ctx.textAlign = 'start'; // 文字左对齐,与 left 等效
ctx.fillText('(start)Hello World!', 150, 20); ctx.beginPath()
ctx.textAlign = 'left'; // 文字左对齐,与 start 等效
ctx.fillText('(left)Hello World!', 150, 80); ctx.beginPath()
ctx.textAlign = 'center'; // 文字句中对齐
ctx.fillText('(center)Hello World!', 150, 140); ctx.beginPath()
ctx.textAlign = 'end'; // 文字右对齐,与 right 等效
ctx.fillText('(end)Hello World!', 150, 200); ctx.beginPath()
ctx.textAlign = 'right'; // 文字右对齐,与 end 等效
ctx.fillText('(right)Hello World!', 150, 260);

textBaseline

textAlign 代表文本以 Y 轴的对齐方式,textBaseline 就是文本以 X 轴的对齐方式,同样也有五个属性值,也有两个属性值互为等效:

属性值 描述
top 位于 Y 轴的下面,顶在 Y 轴
bottom 位于 Y 轴的上面,文本底部与 Y 轴贴合
middle 位于 Y 轴的中间,Y 轴穿过文本
alphabetic 与 bottom 等效
hanging 与 top 等效

最新文章

  1. Oracle数据库升级(10.2.0.4->11.2.0.4)
  2. Web前端资源汇总
  3. C#设计模式系列:单一职责原则(Single Responsibility Principle)
  4. Maven设置代理服务器
  5. oracle 的 nubmer 类型与 C# 的 float double decimal 对应关系
  6. 电脑开启wifi功能
  7. 大熊君大话NodeJS之------Buffer模块
  8. [团队项目]SCRUM项目4.0
  9. ***CI新增记录成功后的返回值判断,是用isset还是empty
  10. android网络编程--从网络下载图片,并保存到内存卡
  11. JS判断手机浏览器
  12. return View()
  13. MyBatis的学习总结四:实现关联表查询【参考】
  14. View处理常用方法封装
  15. Round#534 div.2-B Game with string
  16. java序列化和反序列化中的serialVersionUID有啥用
  17. Busybox构建根文件系统和制作Ramdisk
  18. javascript中startswith和endsWidth 与 es6中的 startswith 和 endsWidth
  19. Tomcat利用MSM实现Session共享方案解说
  20. oracle 创建自定义的流水号

热门文章

  1. Seata源码分析——SessionManager
  2. go-zero 微服务实战系列(一、开篇)
  3. Code Forces 1367A Sorting Parts 题解
  4. JuiceFS V1.0 RC1 发布,大幅优化 dump/load 命令性能, 深度用户不容错过
  5. 聊聊 C# 和 C++ 中的 泛型模板 底层玩法
  6. [安洵杯 2019]easy_web-1
  7. python:**也不过如此嘛,这不也被我采集下来啦~
  8. colab运行.py文件
  9. 从解析HTML开始,破解页面渲染时间长难题
  10. 攻防世界MISC进阶区 61-63