画布默认大小

Fin*_*nnn 17 html css google-chrome canvas

Chrome似乎将画布标签的默认宽度设置为300px.

当我想要一个画布默认为包含div的大小时,这有点令人讨厌,它有一个未指定的大小.

使用这里的示例,我希望画布默认为添加填充的标题宽度.

希望有道理.

这可能没有JavaScript吗?

Rob*_*ert 24

Finnnn,你是对的.

来自html5规范, http://www.w3.org/TR/2012/WD-html5-author-20120329/the-canvas-element.html#the-canvas-element

canvas元素有两个属性来控制坐标空间的大小:宽度和高度.

指定时,这些属性必须具有有效的非负整数值.

width属性默认为300,height属性默认为150.

  • 这很奇怪,对吧?我想不出任何其他具有这样的“默认尺寸”的元素。我想知道为什么选择这些特定尺寸。 (2认同)

Sim*_*ris 12

安排你的布局,以便有一个div,而div的唯一工作就是决定你想要画布的尺寸.

var canvas = document.createElement('canvas');
canvas.width = div.clientWidth;
canvas.height = div.clientHeight;
Run Code Online (Sandbox Code Playgroud)

然后将画布添加到div.

  • 好吧,如果你必须,创建它们服务器端(但你这样做)宽度和高度为1. <canvas width ="1"height ="1"> </ canvas>然后调整它,如果他们碰巧已启用JavaScript. (3认同)
  • 我想我要确保如果用户禁用了javascript,则布局看起来很好。完全避免使用javascript设置初始布局的样式。看起来这是不可能的,这似乎是canvas标签的严重限制。同样,我可能做错了/使用了错误的做法。 (2认同)
  • 如果JavaScript被禁用,Canvas本质上毫无价值.:/ (2认同)

qgi*_*cup 5

我可以确认,在 Chrome 中,默认尺寸是 300px x 150px。