CanvasRenderingContext2D.textBaseline

Canvas 2D API の CanvasRenderingContext2D.textBaseline プロパティは、テキストを描画するときに用いられる現在のテキストのベースライン (基準線) を指定します。

構文

ctx.textBaseline = "top" || "hanging" || "middle" || "alphabetic" || "ideographic" || "bottom";

オプション

指定可能な値:

top
テキストベースラインは em square 一辺が 1 em の正方形 の上になります。
hanging
テキストベースラインは hanging ベースラインになります。
middle
テキストベースラインは em square の真ん中になります。
alphabetic (default value)
テキストベースラインは標準的な alphabetic ベースラインになります。
ideographic
テキストベースラインは ideographic ベースラインになります。文字の主要範囲の底辺が alphabetic ベースラインの下からはみ出る場合があるのに対し、このラインは主要範囲の底辺そのものを表します。(中国語、日本語、韓国語で意味を持ちます。)
bottom
テキストベースラインは bounding box の下辺になります。ideographic ベースラインとの違いは、ディセンダー (descenders) をも含めて底辺を決めるかどうかです。

デフォルト値は alphabetic です。

textBaseline プロパティの使用例

さまざまなベースライン設定を行う例です。

HTML

<canvas id="canvas" width="550" height="500"></canvas>

JavaScript

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

var baselines = ['top', 'hanging', 'middle', 'alphabetic', 'ideographic', 'bottom'];
ctx.font = '36px serif';
ctx.strokeStyle = 'red';

baselines.forEach(function (baseline, index) {
    ctx.textBaseline = baseline;
    var 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);
});

以下のコードを編集すると、canvas の変更個所をその場で確認できます:

仕様

仕様書 策定状況 コメント
HTML Living Standard
CanvasRenderingContext2D.textBaseline の定義
現行の標準  

ブラウザ実装状況

BCD tables only load in the browser

関連情報