【发布时间】:2021-12-13 06:58:18
【问题描述】:
我希望设置一个 html 页面,在其中显示一些文本和一个 html 画布。文本会出现在画布上方,一些额外的文本可能会出现在一侧。分别是this diagram中的A和B。
仅使用 css 的解决方案将是首选,但我在使用 js 时没有问题。可以假设文本足够短以至于不需要滚动。
我用 js 做了一些实验并获得了视口的大小(下面的代码),但画布超出了视口。这是由于现有的利润规则。我可能可以用边距和类似的东西做一些数学运算,但我想避免这种情况,因为如果页面稍后进入更复杂的布局,它会变得更棘手。
-
problem.html:
<html>
<head>
<meta charset="utf-8">
<script src="problem.js"></script>
</head>
<body>
<h1>Some fancy title</h1>
<canvas id="my-canvas"></canvas>
</body>
</html>
-
problem.js:
window.addEventListener('DOMContentLoaded', () => {
const ctx = document.getElementById('my-canvas').getContext('2d');
// https://stackoverflow.com/a/28241682/2923526
const width = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
const height = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;
ctx.canvas.width = width
ctx.canvas.height = height
ctx.fillStyle = "#7fdbbb"
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height)
})
【问题讨论】:
标签: javascript html css html5-canvas