非常に簡単な方法でテキストをキャンバスに印刷しています。
var ctx = canvas.getContext('2d');
ctx.font = "10pt Courier";
ctx.fillText("Hello World", 100, 100);
しかし、テキストを太字、斜体、またはその両方に変更するにはどうすればよいですか?その簡単な例を修正するための提案はありますか?
非常に簡単な方法でテキストをキャンバスに印刷しています。
var ctx = canvas.getContext('2d');
ctx.font = "10pt Courier";
ctx.fillText("Hello World", 100, 100);
しかし、テキストを太字、斜体、またはその両方に変更するにはどうすればよいですか?その簡単な例を修正するための提案はありますか?
これらのいずれかを使用できます。
ctx.font = "italic 10pt Courier";
ctx.font = "bold 10pt Courier";
ctx.font = "italic bold 10pt Courier";
詳細については、次の2つのリソースを参照してください。
これに遭遇した人のために、追加の注意が必要です。受け入れられた回答に示されている順序に必ず従ってください。
注文を間違えたときに、クロスブラウザの問題が発生しました。「10pxVerdanabold」を使用すると、Chromeでは機能しますが、IEやFirefoxでは機能しません。示されているように「太字の10pxVerdana」に切り替えると、これらの問題が修正されました。同様の問題が発生した場合は、順序を再確認してください。
キャンバスのメソッドまたはプロパティでは、下線を引くことはできません。しかし、私はそれを成し遂げるためにいくつかの回避策を行いました。あなたはそれを@http ://scriptstock.wordpress.com/2012/06/12/html5-canvas-text-underline-workaroundでチェックすることができます
ここで実装を見つけることができますhttp://jsfiddle.net/durgesh0000/KabZG/
では、1つのJSコマンドで設定font-weight
(font-size
またはfont-family
...)する方法はありませんか?すべてが1つの完全なフォント文字列である必要がありますか?
フォーマットのバリエーションを許可する必要がある場合は、フォントスタイルを設定し、テキストを描画し、を使用してそれを測定しmeasureText
、新しいスタイルを設定してから、次のように次のブロックを描画できます。
// get canvas / context
var can = document.getElementById('my-canvas');
var ctx = can.getContext('2d')
// draw first text
var text = '99%';
ctx.font = 'bold 12pt Courier';
ctx.fillText(text, 50, 50);
// measure text
var textWidth = ctx.measureText(text).width;
// draw second text
ctx.font = 'normal 12pt Courier';
ctx.fillText(' invisible', 50 + textWidth, 50);
<canvas id="my-canvas" width="250" height="150"></canvas>