绘制文本

画布中不仅可以绘制图形,还可以绘制文本。绘制文本,既可以使用填充方法,也可以使用勾勒方法:

  1. fillText(text, x, y, [maxWidth])
  2. strokeText(text, x, y, [maxWidth])

表示在(x,y)的位置,绘制text的内容。可选参数maxWidth为文本的最大宽度,单位为像素。如果设置了该属性,当文本内容宽度超过该参数值,则会自动按比例缩小字体,使文本的内容全部可见;未超过时,则以实际宽度显示。如果未设置该属性,当文本内容宽度超过画布宽度时,超出的内容将被隐藏。

为保证文本在各浏览器下显示一致,需要设置文本的样式属性,可设置的属性见表 4‑1:

表 4‑1 文本的样式属性
属性 描述
font 文本字体,可设置字体样式的任何值,如font style,font weight,font size,font face等,该属性的值是CSS3字体字符串
textAlign 文本参照X轴坐标如何进行水平对齐。取值:start, end,left,right,center,默认值为start
textBaseline 文本参照Y轴坐标如何进行垂直对齐。取值:top,middle,alphabetic,ideographic,bottom,默认值:alphabetic

下图展示了textAlign和textBaseline这两个属性的可能值,每个文本字符串下面的细线就是基线(baseline),小方框标记了绘制文本时的坐标(x,y)。

调用一次fillText()或strokeText()方法,只能绘制一行文本,如果要绘制多行文本,需要调用多次。

  1. context.font = 'bold 35px Arial';
  2. context.textAlign = 'center';
  3. context.textBaseline = 'bottom';
  4. context.fillStyle = '#ccc';
  5. context.strokeText("Hello Canvas", 150, 100);
  6. context.fillText("Hello Canvas", 180, 140);     

font属性定义绘制文本所使用的字体,其值是一个字符串,语法跟CSS的font属性一致。上述代码的运行结果如图 4‑14 所示:

图4-14 绘制文本

跟绘制图形一样,在对文本进行填充或描边时,除了使用纯色,也可以使用渐变或图案。

说明:

textAlign属性定义的是x坐标点的位置,假设其值为"center",则x坐标点就在文本的中心点的位置,其值为"left",则x坐标点就在文本的最左边的位置。对于从左到右的文本而言,"start"和"left"是等价的,"end"和"right"是等价的;对于从右到左的文本而言,"start"和"right "是等价的,"end"和"left "是等价的。可以通过<vanvas>元素的dir属性来设置文本的方向,“rtl”(right-to-left)表示从右到左,“ltr”( left-to-right)表示从左到右。

关于作者

歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》,并全部在 GitHub 上开源。

版权声明:本文出自 歪脖网 的《HTML宝典》,欢迎在线阅读,并提出宝贵意见。

HTML5 Canvas中绘制文本相关推荐

  1. html绘图环境,HTML_HTML5 在canvas中绘制文本附效果图,一、绘制文本 在绘图环境中提 - phpStudy...

    HTML5 在canvas中绘制文本附效果图 一.绘制文本 在绘图环境中提供了两种方法在canvas中绘制文本. strokeText(text,x,y) : 在(x,y)处绘制空心的文本. fill ...

  2. HTML1个像素宽的代码,HTML5 Canvas中绘制一个像素宽的细线实现代码详情

    正统的HTML5 Canvas中如下代码ctx.lineWidth = 1; ctx.beginPath(); ctx.moveTo(10, 100); ctx.lineTo(300,100); ct ...

  3. html5画椭圆的完整代码,HTML5 Canvas中绘制椭圆的4种方法

    概述 HTML5中的Canvas并没有直接提供绘制椭圆的方法,下面是对几种绘制方法的总结.各种方法各有优缺,视情况选用.各方法的参数相同: 1.context为Canvas的2D绘图环境对象, 2.x ...

  4. html5绘制矩形动画,HTML5 Canvas中绘制矩形实例

    本文翻译自Steve Fulton & Jeff Fulton HTML5 Canvas, Chapter 2, "The Basic Rectangle Shape". ...

  5. html如何画出四个圆圈,HTML5 Canvas中绘制椭圆的4种方法

    概述 HTML5中的Canvas并没有直接提供绘制椭圆的方法,下面是对几种绘制方法的总结.各种方法各有优缺,视情况选用.各方法的参数相同: 1.context为Canvas的2D绘图环境对象, 2.x ...

  6. HTML5 Canvas中绘制贝塞尔曲线

    绘制贝塞尔曲线 贝塞尔曲线于1959年,由法国物理学家与数学家Paul de Casteljau所发明,于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,并用于汽车的车 ...

  7. HTML5 Canvas中 绘制圆弧

    绘制圆弧 圆弧被定义为假想的圆周上任意两点之间的部分.Canvas的API提供了两个绘制圆弧的方法:arc()和arcTo()方法. arc()方法 使用arc()方法绘制圆弧时,假想的圆由圆心和半径 ...

  8. HTML5 Canvas中绘制矩形

    绘制矩形 上一节,我们使用lineTo()方法绘制一个封闭的矩形.其实,canvas的API提供了rect()方法可以绘制矩形.rect()方法是路径方法,它会把指定的矩形添加到当前路径的子路径中.它 ...

  9. HTML5 Canvas中绘制线段

    绘制线段 调用lineTo()方法绘制线段.lineTo(x, y)方法把当前点和lineTo()方法指定的点(x, y)用线段连接起来. 如果要绘制多条线段,可以重复调用该方法.第一次调用,当前点为 ...

最新文章

  1. linux 大量的TIME_WAIT解决办法
  2. 缓存HA的开源解决方案
  3. bluez 设置绑定pin码_国家工信部紧急提醒:一定要设置这个密码!
  4. 统一资源管理与调度平台(系统)介绍
  5. 格兰杰因果关系检验r语言_R语言 t检验t.test
  6. python遇到异常跳过_教你使用Python遇到的异常的处理方式!
  7. C++--第11课 - 类的静态成员
  8. 练习7-9 计算天数(15 分)
  9. html5源码 母亲节,母亲节H5:非常有创意的5款母亲节H5案例分享
  10. 大厂Android面试经历(已获头条、百度、OPPO等大厂offer)
  11. 苹果手机html转pdf文件怎么打开吗,今天才知道,苹果手机打开这个功能,可以将纸质文档转为Word...
  12. pyautogui实现微信自动回复和其他功能
  13. ubuntu12.04 kermit 权限配置
  14. DOM中的node(节点)有关的三个属性--nodeType、nodeName、nodeValue
  15. 入职公司实习两周的一些感受
  16. 中南大学 计算机控制,中南大学计算机控制考试重点...pdf
  17. 这是我面试 42 场拿下字节、微软 offer 的方法论!
  18. uni-app实战之社区交友APP(3)Vue.js和uni-app基础
  19. 单机单点 Rke2 Single 升级到 高可用 Rke2 HA
  20. vue-pdf实现放大、缩小

热门文章

  1. 联动下拉框显示省市县
  2. 《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第1章1.3节安装BackTrack到USB驱动器...
  3. 阿里云Centos镜像源和EPEL源
  4. 如何帮助beetl发展
  5. HOW TO:在 Visual C++ .NET 中从 System::String* 转换为 Char*
  6. Oracle VM + Windows2003 Server 配置
  7. iis 搭建html网站,iis6.0 、7.0添加网站(搭建网站)
  8. 深度学习多卡配置_RTX 3080深度学习环境配置
  9. 基于ASP.net的电力系统分析精品课程网站
  10. 华为手机截屏怎么截长图_华为手机5种常用截屏方式,教你轻松定格屏幕精彩瞬间...