hand
_1_12_125
4
返回栏目
0k
3k
5k
1k
2k
0.2k
2k
1k
2k
3k
2k
3k
2k
3k
3k
0.3k
0k
2k
0k
1k
0.1k
0k
0k
2k
2k
3k
0.2k
3k
0k
2k
2k
2k
3k
2k
2k
0k
4k
2k
2k
0k
3k
3k
2k
2k
2k
1k
3k
1k
3k
2k
1k
0.8k
2k
0k
2k
2k
2k
2k
3k
0.4k
4k
2k
5k
2k
3k
2k
3k
3k
4k
2k
3k
2k
3k
0.7k
2k
0.8k
3k
2k
4k
2k
2k
2k
2k
2k
3k
3k
3k
3k
4k
3k
3k
0k
2k
2k
0k
3k
2k
3k
1k
2k
2k
3k
3k
3k
3k
5k
3k
3k
3k
4k
3k
5k
4k
4k
4k
4k
1k
2k
2k
2k
2k
2k
2k
1k
2k
3k
3k
3k
3k
3k
2k
3k
4k
2k
2k
3k
5k
3k
3k
3k
4k
3k
3k
2k
3k
5k
4k
3k
4k
4k
2k
3k
3k
1k
3k
4k
4k
2k
2k
2k
3k
2k
4k
2k
4k
2k
4k
1k
2k
1k
2k
2k
1k
2k
2k
2k
2k
2k
2k
1k
1k
4k
3k
2k
2k
3k
3k
6k
2k
8k
3k
7k
2k
3k
3k
4k
3k
5k
4k
3k
3k
2k
2k
3k
3k
2k
2k
2k
3k
2k
6k
4k
4k
4k
4k
3k
3k
2k
4k
2k
3k
3k
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
0k
返回前端 - HTML5栏目
作者:
贺及楼
成为作者
更新日期:2025-02-27 12:18:48
在 HTML5 中,canvas
元素就像是一块“魔法画布”,允许开发者使用 JavaScript 在网页上绘制图形、动画、游戏等各种酷炫的效果。而正确设置画布的大小是使用 canvas
的基础,它会直接影响到绘制内容的显示效果。下面我们就来详细探讨一下 canvas
画布大小的设置方法。
canvas
元素有两个与大小相关的属性:width
和 height
。这两个属性分别定义了画布的宽度和高度,单位是像素。需要注意的是,这与通过 CSS 设置的大小是不同的概念。CSS 主要用于控制 canvas
元素在页面中的布局和显示大小,而 width
和 height
属性则决定了画布的实际绘图区域大小。
这是最简单直接的设置画布大小的方法,只需要在 canvas
标签中添加 width
和 height
属性即可。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Canvas Size via HTML Attributes</title>
</head>
<body>
<!-- 设置画布宽度为 400 像素,高度为 200 像素 -->
<canvas id="myCanvas" width="400" height="200" style="border: 1px solid black;"></canvas>
<script>
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'blue';
ctx.fillRect(50, 50, 100, 100);
</script>
</body>
</html>
canvas
标签中,width="400"
和 height="200"
明确指定了画布的实际绘图区域大小为 400x200 像素。canvas
元素并创建绘图上下文 ctx
,然后绘制了一个蓝色的矩形。有时候,我们需要在运行时动态地设置画布的大小,这时就可以使用 JavaScript 来实现。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Canvas Size via JavaScript</title>
</head>
<body>
<canvas id="myCanvas" style="border: 1px solid black;"></canvas>
<script>
const canvas = document.getElementById('myCanvas');
// 使用 JavaScript 设置画布宽度为 300 像素,高度为 150 像素
canvas.width = 300;
canvas.height = 150;
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'green';
ctx.fillRect(20, 20, 80, 80);
</script>
</body>
</html>
document.getElementById
获取 canvas
元素。canvas.width
和 canvas.height
属性动态设置画布的大小。CSS 可以控制 canvas
元素在页面中的布局和显示大小,但不会改变画布的实际绘图区域大小。如果 CSS 设置的大小与 width
和 height
属性不一致,会导致绘制内容被拉伸或压缩。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Canvas Size via CSS</title>
<style>
#myCanvas {
width: 600px;
height: 300px;
border: 1px solid black;
}
</style>
</head>
<body>
<!-- 只设置 HTML 属性的宽度和高度 -->
<canvas id="myCanvas" width="200" height="100"></canvas>
<script>
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'red';
ctx.fillRect(10, 10, 50, 50);
</script>
</body>
</html>
canvas
元素的宽度为 600 像素,高度为 300 像素。canvas
标签中设置实际绘图区域大小为 200x100 像素。设置方式 | 作用 | 注意事项 |
---|---|---|
HTML 属性(width 和 height ) |
定义画布的实际绘图区域大小 | 直接影响绘图结果,改变该属性会清空画布内容 |
JavaScript(canvas.width 和 canvas.height ) |
动态设置画布的实际绘图区域大小 | 同样会清空画布内容 |
CSS(width 和 height ) |
控制 canvas 元素在页面中的布局和显示大小 |
可能导致绘制内容被拉伸或压缩,不改变实际绘图区域大小 |
通过以上几种方法,我们可以根据实际需求灵活设置 canvas
画布的大小。在实际开发中,建议优先使用 HTML 属性或 JavaScript 来设置画布的实际绘图区域大小,以确保绘制内容的准确性。希望本文能帮助你更好地理解和使用 canvas
元素的大小设置。
前端 - HTML5
整章节共240节
快分享给你的小伙伴吧 ~