Wie gestalte ich HTML5-Canvas-Text fett und / oder kursiv?


83

Ich drucke Text ziemlich einfach auf eine Leinwand:

var ctx = canvas.getContext('2d');
ctx.font = "10pt Courier";
ctx.fillText("Hello World", 100, 100);

Aber wie kann ich den Text fett, kursiv oder beides ändern? Irgendwelche Vorschläge, um dieses einfache Beispiel zu beheben?

Antworten:


154

Sie können Folgendes verwenden:

ctx.font = "italic 10pt Courier";

ctx.font = "bold 10pt Courier";

ctx.font = "italic bold 10pt Courier";

Weitere Informationen finden Sie hier:


2
Arg hat mich geschlagen, +1 Tolle Seite für weitere Informationen, diveintohtml5.org/canvas.html#divingin
Loktar

@Loktar Danke für den Link, der in die Antwort aufgenommen wurde.
Donut


4
Sie können auch die Schriftgröße angeben:ctx.font = "400 10pt Courier"
Ivan P

Die Schriftgewichtung über ctx.font = "400 10pt Open Sans"hat in Chrome mit Calibri oder Open Sans in den neuesten Browserversionen nicht funktioniert
sean2078

12

Nur ein zusätzlicher Hinweis für alle, die darüber stolpern: Befolgen Sie unbedingt die in der akzeptierten Antwort angegebene Reihenfolge.

Ich hatte einige browserübergreifende Probleme, als ich die falsche Reihenfolge hatte. "10px Verdana fett" funktioniert in Chrome, jedoch nicht in IE oder Firefox. Das Umschalten auf "fett 10px Verdana" wie angegeben behebt diese Probleme. Überprüfen Sie die Reihenfolge, wenn Sie auf ähnliche Probleme stoßen.


Chrome scheint sich geändert zu haben, sodass es mit Firefox übereinstimmt. Siehe diesen Stift: codepen.io/anon/pen/BXNZxO
ecc521

2

Es gibt also keine Möglichkeit, nur einen JS-Befehl festzulegen font-weight(oder font-sizeoder font-family...). Es muss alles in einer vollständigen Schriftzeichenfolge sein?


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.