Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有绝对位置的html5画布不';行不通_Javascript_Css_Html_Html5 Canvas - Fatal编程技术网

Javascript 具有绝对位置的html5画布不';行不通

Javascript 具有绝对位置的html5画布不';行不通,javascript,css,html,html5-canvas,Javascript,Css,Html,Html5 Canvas,具有绝对位置的画布无法正常工作,如您在此处所见: (在Firefox和Chrome中测试)矩形的大小应为500x500像素 有没有一种方法可以让它工作,而不需要手动设置宽度和高度?还是我犯了什么错误?定位工作正常。您只是在画布的右下角绘制黑框。由于画布元素只有300150像素大,因此正在剪裁矩形 您必须手动设置宽度和高度 这可以通过JavaScriptOnResize事件来完成——这很好,因为您几乎总是需要在调整大小时重新绘制画布表面 编辑: 根据W3规范,以下是canvas DOM接口: c

具有绝对位置的画布无法正常工作,如您在此处所见: (在Firefox和Chrome中测试)矩形的大小应为500x500像素


有没有一种方法可以让它工作,而不需要手动设置宽度和高度?还是我犯了什么错误?

定位工作正常。您只是在画布的右下角绘制黑框。

由于画布元素只有300150像素大,因此正在剪裁矩形


您必须手动设置宽度和高度

这可以通过JavaScriptOnResize事件来完成——这很好,因为您几乎总是需要在调整大小时重新绘制画布表面

编辑:

根据W3规范,以下是canvas DOM接口:

canvas元素有两个属性来控制画布的大小 坐标空间:宽度和高度。这些属性在指定时, 必须具有有效的非负整数值。规则 必须使用解析非负整数来获取其数值 价值观如果缺少属性,或者如果解析其值返回 错误,则必须使用默认值。宽度 属性默认为300,高度属性默认为150


为什么不同时向左和向右?我知道,但为什么它没有页面那么大呢?我的css显示左侧为0px,右侧为0px,顶部为0px,底部为0px。这个答案没有回答OP的问题。所以你的意思是“画布”必须手动完成,而“div”则不能。正确的画布需要高度和宽度。不能通过右下角完成。所以我测试了这个:我必须手动设置宽度和高度,但是画布在offsetwidth和offsetheightNo中有这些值,这不是错误。另外,在我最后的评论中,我的意思不是“正确的画布…”,我的意思是“正确的.画布…”+1表示
onresize
,我再次+1表示链接并引用规范。传递秘密:规范可能值得阅读。
interface HTMLCanvasElement : HTMLElement {
           attribute unsigned long width;
           attribute unsigned long height;

  DOMString toDataURL(in optional DOMString type, in any... args);
  void toBlob(in FileCallback, in optional DOMString type, in any... args);

  object getContext(in DOMString contextId, in any... args);
};