Canvas画出来的图形为什么显示不出来?

小恩宇 阅读 26

我照着教程写了个简单的Canvas画矩形的代码,但页面上啥也看不到,控制台也没报错。是不是哪里漏了?我检查了canvas的宽高和getContext,看起来没问题啊。

这是我的HTML代码:

<canvas id="myCanvas" width="400" height="300"></canvas>
<script>
  const canvas = document.getElementById('myCanvas');
  const ctx = canvas.getContext('2d');
  ctx.fillStyle = 'red';
  ctx.fillRect(50, 50, 100, 100);
</script>
我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
设计师一可
你的代码本身没问题,能正常画出红色矩形。

显示不出来最可能的原因是CSS把canvas样式改了。你检查一下:

1. 打开浏览器开发者工具,看看canvas元素Computed里的width和height是不是400x300。如果CSS里写了canvas { width: 100px; }之类的,会把画布拉伸变形,矩形位置就错位了,可能跑到视口外面去了。

2. 看看canvas有没有被 display: none 或者 visibility: hidden 之类的藏着。

3. 检查一下canvas的背景色,默认是透明的,你可能没注意到红色矩形画在白色背景上。

快速排查方法:直接在开发者工具里给canvas加个边框看看

canvas {
border: 1px solid black;
}


如果边框出来了但矩形还是看不见,那把fillRect的参数改大点试试,比如 fillRect(0, 0, 400, 300) 填满整个画布,看有没有红色。
点赞
2026-03-12 14:00