【发布时间】:2016-05-18 01:12:11
【问题描述】:
画布的大小(宽高)可以改变,但画布的样式大小不能动态改变。
canvas = document.getElementById('test_fabric');
ctx = this.canvas.getContext('2d');
canvas.style.width = 1000; // does not work.
canvas.style.height = 260; // does not work.
canvas.width = 100; // works.
canvas.height = 100; // works.
canvas.width 和 canvas.height 都可以正常工作,但是 canvas.style.width 和 canvas.style.height 都不起作用。
就我而言,画布的样式大小只能通过 css 文件或画布的内联样式来更改。
canvas#test_fabric {
width:400px;
height:400px;
background:gold;
}
或
<div><canvas id="test_fabric" width="200" height="200"
style="width:200px; height:200px"></canvas></div>
注意:当内联样式存在时,css文件失效。
通过 JavaScript 动态改变画布样式大小的方法是什么?
【问题讨论】:
-
对不起,我的意思是:stackoverflow.com/questions/13779429/…
-
您是否尝试过指定 CSS 长度单位,例如“px”?
canvas.style.width = "1000px" -
我尝试使用“canvas.setAttribute('width', '500');”和“canvas.setAttribute('height', '500');”,在定义没有样式的canvas标签时不起作用,在定义带样式的canvas标签时,Chrome会报信息:“[Report Only] Refused to apply inline样式,因为它违反了以下内容安全策略指令:“style-src 'self'”。'unsafe-inline' 关键字、哈希('sha256-8qEYHk4WwsvJKgLquQfLnw2DRoaMh4sWGNj24adrRLQ=')或随机数('nonce-... ') 是启用内联执行所必需的。"
-
所以...您忽略了我的建议,并忽略了下面说同样事情的答案,相反,您现在正在评论一些没有的 other 事情不行吗?
-
canvas.style.width 和 canvas.style.height 在指定 CSS 长度单位“px”时有效。 nnnnnn:谢谢!
标签: javascript css canvas