html5之canvas困惑 在canvas标签内需要设置了宽跟高,如果在css中设置同样的宽跟高,画出来的图像变形了?...

CSS拉伸Canvas问题解析
本文探讨了使用CSS改变HTML5 Canvas尺寸时出现图形失真的原因,并提供了正确的解决方案。建议通过JavaScript直接修改canvas元素的宽度和高度属性,以避免图像变形。
<canvas class="cvs"></canvas>

遇到的问题:

如css 中设.cvs{width:500px;height:400px;},也就是css改变了canvas的尺寸后,本来是可以画出一个圆来,现在却是一个扁平的圆,为什么呀?
如图:


什么原因:(百度上说的)

当你在支持html5 canvas的浏览器下查看页面的时候,你会看到一个大小为300px*300px(BTW:canvas默认大小为:300px*150pxcanvas)相当于一张图片,css设置的属性相当于
对这张图片进行拉伸变化

要改变canvas的大小,应当用这种方式:
使用js来改变
<canvas width=500 height=400></canvas>

对应的javascript是
canvas=document.getElementsByTagName('canvas')[0];
canvas.width=500;
canvas.height=400;

换句话说,你现在画出的圆实际显示的是在默认大小上经过拉伸变换的样子。
自己的理解:

canvas是一张画布,就像一张图片那样,默认的图片大小事300*150,但是我们在css样式中设置了canvas,就是把图片给拉伸变换了,于是我们不一样的图片。就像我们打开平时一张图片,然后进行拉伸般,于是图片就变形。
所以,画布的宽跟高,最好还是直接在canvas标签里面设置了,这样一来,就直接改变了默认的画布宽跟高的值。

【学到新知识时,再过来修改】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值