CanvasRenderingContext2D.textBaseline - Web API 接口参考 编辑
CanvasRenderingContext2D
.textBaseline
是 Canvas 2D API 描述绘制文本时,当前文本基线的属性。
译者注:决定文字垂直方向的对齐方式。
语法
ctx.textBaseline = "top" || "hanging" || "middle" || "alphabetic" || "ideographic" || "bottom";
选项
有效值:
- top
- 文本基线在文本块的顶部。
- hanging
- 文本基线是悬挂基线。
- middle
- 文本基线在文本块的中间。
- alphabetic
- 文本基线是标准的字母基线。
- ideographic
- 文字基线是表意字基线;如果字符本身超出了alphabetic 基线,那么ideograhpic基线位置在字符本身的底部。
- bottom
- 文本基线在文本块的底部。 与 ideographic 基线的区别在于 ideographic 基线不需要考虑下行字母。
默认值是 alphabetic。
示例
使用 textBaseline 属性
这是一段简单的代码片段,使用 textBaseline
属性设置不同的文本基线。
HTML
<canvas id="canvas" width="550" height="500"></canvas>
JavaScript
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
const baselines = ['top', 'hanging', 'middle', 'alphabetic', 'ideographic', 'bottom'];
ctx.font = '36px serif';
ctx.strokeStyle = 'red';
baselines.forEach(function (baseline, index) {
ctx.textBaseline = baseline;
let y = 75 + index * 75;
ctx.beginPath();
ctx.moveTo(0, y + 0.5);
ctx.lineTo(550, y + 0.5);
ctx.stroke();
ctx.fillText('Abcdefghijklmnop (' + baseline + ')', 0, y);
});
Playable code
<canvas id="canvas" width="550" height="500"></canvas>
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
const baselines = ['top', 'hanging', 'middle', 'alphabetic', 'ideographic', 'bottom'];
ctx.font = '36px serif';
ctx.strokeStyle = 'red';
baselines.forEach(function (baseline, index) {
ctx.textBaseline = baseline;
let y = 75 + index * 75;
ctx.beginPath();
ctx.moveTo(0, y + 0.5);
ctx.lineTo(550, y + 0.5);
ctx.stroke();
ctx.fillText('Abcdefghijklmnop (' + baseline + ')', 0, y);
});
结果
规范描述
Specification | Status | Comment |
---|---|---|
HTML Living Standard CanvasRenderingContext2D.textBaseline | Living Standard |
浏览器兼容性
BCD tables only load in the browser
此页面上的兼容性表是根据结构化数据生成的。 如果您想提供数据,请查看https://github.com/mdn/browser-compat-data并向我们发送请求请求。
参见
- 接口定义,
CanvasRenderingContext2D
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论