Я печатаю текст на холсте довольно простым способом:
var ctx = canvas.getContext('2d');
ctx.font = "10pt Courier";
ctx.fillText("Hello World", 100, 100);
Но как изменить текст на полужирный, курсив или и то, и другое? Есть предложения по исправлению этого простого примера?
ctx.font = "400 10pt Courier"
ctx.font = "400 10pt Open Sans"
не работала для меня в Chrome с использованием Calibri или Open Sans в последних версиях браузераЕще одно предупреждение для тех, кто наткнется на это: обязательно следуйте порядку, указанному в принятом ответе.
Я столкнулся с некоторыми проблемами кроссбраузерности, когда указывал неправильный порядок. Использование «10px Verdana bold» работает в Chrome, но не в IE или Firefox. Переключение на «жирный шрифт 10px Verdana», как указано, устранило эти проблемы. Еще раз проверьте порядок, если вы столкнетесь с подобными проблемами.
источник
Значит, нет возможности просто установить
font-weight
(илиfont-size
илиfont-family
...) в одной команде JS? Все должно быть в одной полной строке шрифтов?источник
Подчеркивание невозможно с помощью каких-либо методов или свойств холста. Но я немного поработал, чтобы это сделать. Вы можете проверить это @ http://scriptstock.wordpress.com/2012/06/12/html5-canvas-text-underline-workaround
Вы можете найти реализацию здесь http://jsfiddle.net/durgesh0000/KabZG/
источник
Если вам нужно учесть различия в форматировании, вы можете установить стиль шрифта, нарисовать текст, измерить его с помощью
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>
Дальнейшее чтение
источник