CanvasRenderingContext2D: textAlign 屬性

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Canvas 2D API 的 CanvasRenderingContext2D.textAlign 屬性指定繪製文字時使用的當前文字對齊方式。

對齊方式相對於 fillText() 方法的 x 值。例如,如果 textAlign"center",則文字的左邊緣將位於 x - (textWidth / 2)

可能的值

"left"

文字左對齊。

文字右對齊。

"center"

文字居中對齊。

"start"

文字在行的正常起始位置對齊(對於從左到右的語言環境為左對齊,對於從右到左的語言環境為右對齊)。

"end"

文字在行的正常結束位置對齊(對於從左到右的語言環境為右對齊,對於從右到左的語言環境為左對齊)。

預設值為 "start"

示例

常規文字對齊

此示例演示了 textAlign 屬性的三個“物理”值:"left""center""right"

HTML

html
<canvas id="canvas"></canvas>

JavaScript

js
const canvas = document.getElementById("canvas");
canvas.width = 350;
const ctx = canvas.getContext("2d");
const x = canvas.width / 2;

ctx.beginPath();
ctx.moveTo(x, 0);
ctx.lineTo(x, canvas.height);
ctx.stroke();

ctx.font = "30px serif";

ctx.textAlign = "left";
ctx.fillText("left-aligned", x, 40);

ctx.textAlign = "center";
ctx.fillText("center-aligned", x, 85);

ctx.textAlign = "right";
ctx.fillText("right-aligned", x, 130);

結果

依賴於方向的文字對齊

此示例演示了 textAlign 屬性的兩個依賴於方向的值:"start""end"。請注意,direction 屬性手動設定為 "ltr",儘管這對於英語文字也是預設值。

HTML

html
<canvas id="canvas"></canvas>

JavaScript

js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");

ctx.font = "30px serif";
ctx.direction = "ltr";

ctx.textAlign = "start";
ctx.fillText("Start-aligned", 0, 50);

ctx.textAlign = "end";
ctx.fillText("End-aligned", canvas.width, 120);

結果

規範

規範
HTML
# dom-context-2d-textalign-dev

瀏覽器相容性

另見