小编典典

使用 CSS 时画布会被拉伸,但使用“宽度”/“高度”属性是正常的

all

我有 2 个画布,一个使用 HTML 属性widthheight大小,另一个使用 CSS:

<canvas id="compteur1" width="300" height="300" onmousedown="compteurClick(this.id);"></canvas>
<canvas id="compteur2" style="width: 300px; height: 300px;" onmousedown="compteurClick(this.id);"></canvas>

Compteur1 显示应该是这样,但不是 compteur2。内容是使用 JavaScript 在 300x300 画布上绘制的。

为什么会有显示差异?

替代文字


阅读 62

收藏
2022-06-27

共1个答案

小编典典

似乎widthandheight属性决定了画布坐标系的宽度或高度,而 CSS 属性只是决定了它将在其中显示的框的大小。

这在HTML 规范中有解释:

元素有两个属性来控制元素的canvas大小——位图:widthheight。这些属性在指定时必须具有 有效的非负整 数值。
必须使用解析非负整数 的规则来获取它们的数值。如果缺少某个属性,或者如果解析其值返回错误,则必须使用默认值。width属性默认为
300,属性height默认为 150。

2022-06-27