0
A
回答
2
是,这些单位总是像素并应用到位 canvas元素使用。但是,如果在使用CSS的元素上没有定义大小(即style
属性或使用样式表),则该元素将自动采用其位图的大小。
没有其他方式设置位图的大小比像素的数量。使用CSS只会改变元素本身的大小,而不是位图,扩展任何绘制到位图以适应元素的大小。
要使用其他单位,你将不得不手动计算这些使用JavaScript,例如:
// using % of viewport for canvas bitmap (pixel ratio not considered)
var canvas = document.getElementById("myCanvas"),
vwWidth = window.innerWidth,
vwHeight = window.innerHeight,
percent = 60;
canvas.width = Math.round(vwWidth * percent/100); // integer pixels
canvas.height = Math.round(vwHeight * percent/100);
// not to be confused with the style property which affects CSS, ie:
// canvas.style.width = "60%"; // CSS only, does not affect bitmap
如果你想支持视网膜,那么你需要使用window.devicePixelRatio
与大小相乘。在这种情况下,CSS也是必要的(与上面的代码结合):
var pxRatio = window.devicePixelRatio || 1,
width = Math.round(vwWidth * percent/100),
height = Math.round(vwHeight * percent/100);
canvas.width = width * pxRatio;
canvas.height = height * pxRatio;
canvas.style.width = width + "px";
canvas.style.height = height + "px";
0
HTML5中的几乎所有尺寸参数都将以像素为单位。如果您遇到绘图画布与您当前密码的问题,请尝试取得了自闭块结尾:
<canvas id="myCanvas" width="200" height="300"></canvas>
您也可以考虑观察canvas元素的属性由W3学校的定义: http://www.w3schools.com/html/html5_canvas.asp
0
使用CSS来设置你的画布风格
<canvas id="el"></canvas>
<style>
#el{
display: block;
width:100%;
height: 100%;
}
</style>
相关问题
- 1. HTML5画布高度和宽度100%扭曲游戏动画
- 2. 如何获取HTML5画布的宽度和高度?
- 3. HTML5:画布圈为椭圆形,因为宽度和高度
- 4. 画布高度和宽度问题
- 5. HTML5帆布100%宽度视口高度?
- 6. HTML5画布和线条宽度
- 7. 设置宽度/高度时,在HTML5画布中禁用重置
- 8. 绑定表到画布高度宽度
- 9. HTML5 <video>宽度和高度
- 10. 梯度HTML5画布
- 11. 如何测量具有自动高度和宽度的画布
- 12. rotation当画布的高度和宽度不同时的逻辑
- 13. 根据图像动态设置画布宽度和高度
- 14. 使用javascript获取画布宽度和高度
- 15. 将画布放大到父宽度和高度
- 16. 如何增加Photoshop Sprite的画布宽度和高度
- 17. drawimage到一个已确定的画布宽度和高度
- 18. 获取画布元素的正确宽度和高度
- 19. Silverlight 4画布高度和宽度绑定
- 20. 画布宽度和高度以像素为单位
- 21. 用CSS设置画布宽度和高度移动笔
- 22. 画布fillRect高度和宽度总是倾斜/扭曲
- 23. 获取宽度和高度的布局
- 24. 布局宽度和高度被忽略
- 25. 高度和宽度
- 26. 设置画布高度和宽度的高度以及包含分区的宽度
- 27. HTML5画布进度条
- 28. Android |获取屏幕高度,宽度和屏幕宽度,高度
- 29. autoresizingmask高度和宽度
- 30. Youtube宽度和高度
非常感谢! – AlonAlon 2014-11-24 20:23:04