CanvasRenderingContext2D: fillText() 方法

Baseline 已廣泛支援

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

CanvasRenderingContext2DfillText() 方法是 Canvas 2D API 的一部分,它會在指定的座標處繪製一個文字字串,並使用當前的 fillStyle 填充該字串的字元。還有一個可選引數,允許指定渲染文字的最大寬度,使用者代理會透過壓縮文字或使用較低的字型大小來實現這一點。

此方法直接繪製到畫布上,而不會修改當前路徑,因此任何後續的 fill()stroke() 呼叫都不會對其產生影響。

文字的渲染使用由 fonttextAligntextBaselinedirection 屬性定義的字型和文字佈局配置。

注意: 要繪製字串中字元的輪廓,請呼叫上下文的 strokeText() 方法。

語法

js
fillText(text, x, y)
fillText(text, x, y, maxWidth)

引數

文字

一個指定要渲染到上下文中的文字字串。文字使用 fonttextAligntextBaselinedirection 指定的設定進行渲染。

x

文字開始繪製的點的 x 軸座標,以畫素為單位。

y

文字開始繪製的基線的 y 軸座標,以畫素為單位。

maxWidth 可選

渲染後文本可能擁有的最大畫素寬度。如果未指定,則文字寬度沒有限制。但是,如果提供了此值,使用者代理將透過調整字距、選擇更緊湊的水平字型(如果可用或可以無損生成)或縮小到更小的字型大小來使文字適應指定的寬度。

返回值

無(undefined)。

示例

繪製填充文字

此示例使用 fillText() 方法寫入 "Hello world" 字樣。

HTML

首先,我們需要一個畫布來繪製。此程式碼建立一個寬度為 400 畫素、高度為 150 畫素的上下文。

html
<canvas id="canvas" width="400" height="150"></canvas>

JavaScript

此示例的 JavaScript 程式碼如下。

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

ctx.font = "50px serif";
ctx.fillText("Hello world", 50, 90);

此程式碼獲取對 <canvas> 的引用,然後獲取對其 2D 圖形上下文的引用。

在此基礎上,我們將 font 設定為 50 畫素高的 "serif"(使用者預設的 serif 字型),然後呼叫 fillText() 在座標 (50, 90) 處繪製 "Hello world" 文字。

結果

限制文字大小

此示例寫入 "Hello world" 字樣,並將其寬度限制為 140 畫素。

HTML

html
<canvas id="canvas" width="400" height="150"></canvas>

JavaScript

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

ctx.font = "50px serif";
ctx.fillText("Hello world", 50, 90, 140);

結果

規範

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

瀏覽器相容性

另見