CanvasRenderingContext2D: fontVariantCaps 屬性

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

CanvasRenderingContext2D.fontVariantCaps 屬性是 Canvas API 的一部分,用於指定渲染文字的替代大寫形式。

這對應於 CSS 的 font-variant-caps 屬性。

字型替代大寫值,其取值範圍如下:

normal (預設)

停用替代字形的使用。

small-caps

啟用小型大寫字母(OpenType 特性:smcp)的顯示。小型大寫字母通常採用大寫字母的形式,但被縮小到小寫字母的大小。

all-small-caps

為大寫和小寫字母都啟用小型大寫字母的顯示(OpenType 特性:c2sc, smcp)。

petite-caps

啟用超小型大寫字母(OpenType 特性:pcap)的顯示。

all-petite-caps

為大寫和小寫字母都啟用超小型大寫字母的顯示(OpenType 特性:c2pc, pcap)。

unicase

啟用混合顯示,即大寫字母使用小型大寫字母,小寫字母使用普通小寫字母(OpenType 特性:unic)。

titling-caps

啟用標題大寫字母(OpenType 特性:titl)的顯示。大寫字母字形通常是為與小寫字母一起使用而設計的。當它們用於全是大寫字母的標題序列時,可能會顯得過於突出。標題大寫字母是專門為這種情況設計的。

此屬性可用於獲取或設定字型大寫值。

請注意,其中一些值存在可訪問性問題,這些問題在相應的 font-variant-caps 主題中有所概述。

示例

在此示例中,我們使用 fontVariantCaps 屬性支援的每個值來顯示文字“Hello World”。透過讀取該屬性,還顯示了每種情況的值。

HTML

html
<canvas id="canvas" width="700" height="220"></canvas>

JavaScript

js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.font = "20px serif";

// Default (normal)
ctx.fillText(`Hello world (default: ${ctx.fontVariantCaps})`, 5, 20);

// Capitalization: small-caps
ctx.fontVariantCaps = "small-caps";
ctx.fillText(`Hello world (${ctx.fontVariantCaps})`, 5, 50);

// Capitalization: all-small-caps
ctx.fontVariantCaps = "all-small-caps";
ctx.fillText(`Hello world (${ctx.fontVariantCaps})`, 5, 80);

// Capitalization: petite-caps
ctx.fontVariantCaps = "petite-caps";
ctx.fillText(`Hello world (${ctx.fontVariantCaps})`, 5, 110);

// Capitalization: all-petite-caps
ctx.fontVariantCaps = "all-petite-caps";
ctx.fillText(`Hello world (${ctx.fontVariantCaps})`, 5, 140);

// Capitalization: unicase
ctx.fontVariantCaps = "unicase";
ctx.fillText(`Hello world (${ctx.fontVariantCaps})`, 5, 170);

// Capitalization: titling-caps
ctx.fontVariantCaps = "titling-caps";
ctx.fillText(`Hello world (${ctx.fontVariantCaps})`, 5, 200);

結果

規範

規範
HTML
# dom-context-2d-fontvariantcaps

瀏覽器相容性