【发布时间】:2016-06-26 04:49:48
【问题描述】:
我需要在 HTML5 画布上的精确位置绘制一个文本字符串。
<!DOCTYPE html>
<html>
<body>
<canvas id="mainCanvas" width="320" height="240" style = "border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.
</canvas>
<script>
window.onload = function() {
var canvas = document.getElementById("mainCanvas");
var ctx = canvas.getContext("2d");
ctx.textBaseline = "top";
ctx.font = '100px Arial';
ctx.textAlign = 'left';
ctx.fillStyle = 'rgba(0, 0, 0, 255)';
ctx.fillText('Test', 0, 0);
}
</script>
</body>
</html>
顶部的边距在 Chrome 和 Firefox 中是不同的:
我将在画布上绘制其他元素(例如图像、形状),并且我需要确保文本出现在所有浏览器中的相同位置。有可能吗?
【问题讨论】:
-
可能问题出在我更改时的文本大小,尽管我尝试在下面使用它,但它可以正常工作 ctx.font = "50px Verdana"; ctx.fillStyle = 'rgba(0, 0, 0, 255)'; ctx.fillText("测试", 10, 50);
-
@cracker 我尝试按照您的建议更改字体,但相对于画布顶部的文本位置在 Chrome 和 Firefox 中仍然不同
-
我尝试过使用 ctx.textBaseline = "alphabetic"; ctx.fillText('测试', 10, 100);您需要手动设置参数的地方。它可能会对您有所帮助!
标签: javascript html google-chrome firefox html5-canvas