php width,canvas定义width、height的正确用法

本文探讨了在前端开发中,使用CSS设置Canvas元素的width和height属性时,为何会导致画布按比例缩放的问题。正确的做法是直接通过Canvas标签的width和height属性来设定尺寸。此外,文章指出canvas的width和height值不支持百分比,只能接受数值,否则页面将无效果。了解这一特性对于避免Canvas显示问题至关重要。
摘要由CSDN通过智能技术生成

现在前端代码书写习惯,一般都会遵循标签结构与样式分离的写法,即一般不添加标签属性来控制页面元素显示效果,而通过 或引用css文件来实现!

但使用Canvas时,也采用同样的方式来处理,却会产生一个让人很难理解的现象:使用 或引用css文件设置Canvas画布的width、height大小,则导致画布元素尺寸会按css值进行比例缩放,示例如下:

var canvas=document.createElement("canvas");

canvas.style.cssText="width:200px;height:200px;background:#080;";

var ctx=canvas.getContext("2d");

ctx.fillStyle="#f00";

ctx.fillRect(0,0,100,100);

document.body.appendChild(canvas);

提示:你可以先修改部分代码再运行。

正确设置canvas标签尺寸大小的方式是:直接通过添加标签属性width、height来实现的,这也是避免出现上述怪现象的最直接、简单的方法,上述代码改动如下:

var canvas=document.createElement("canvas");

canvas.style.cssText="background:#080;";

canvas.width=200;

canvas.height=200;

var ctx=canvas.getContext("2d");

ctx.fillStyle="#f00";

ctx.fillRect(0,0,100,100);

document.body.appendChild(canvas);

提示:你可以先修改部分代码再运行。

另外要注意的是:

虽然w3c官方称,width、height这2个属性可以指定为一个整数像素值或者是窗口宽高度的百分比:https://www.w3school.com.cn/jsref/dom_obj_canvas.asp

但实际上:canvas标签属性width/height值只能是数值,而不能识别百分比(即使设置canvas为块状元素display:block;也一样),表现页面无效果!

参考链接:

https://www.alixixi.com/web/a/2014031192657.shtml

https://www.cnblogs.com/artwl/archive/2012/02/28/2372042.html

https://blog.csdn.net/mydeman/article/details/11766847

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值