将元素高度设置为clientHeight会导致页面滚动



我有一段代码:

<!DOCTYPE html>
<html lang="en">
<head>
<script>      
window.addEventListener('load', () => {
document.getElementById("c").width = document.documentElement.clientWidth;
document.getElementById("c").height = document.documentElement.clientHeight;
})
</script>
</head>
<body style="margin: 0;">
<canvas id="c" style="background-color: red;"></canvas>
</body>
</html>

为什么它生成的画布比浏览器视口大,并制作滚动条?除此之外,它在画布下面留出了一些空白。为什么以及如何解决?谢谢

默认情况下,画布显示设置为display: inline;
您只需将画布显示设置成display: block;

<!DOCTYPE html>
<html lang="en">
<head>
<script>      
window.addEventListener('load', () => {
document.getElementById("c").width = document.documentElement.clientWidth;
document.getElementById("c").height = document.documentElement.clientHeight;
})
</script>
</head>
<body style="margin: 0;">
<canvas id="c" style="background-color: red; display: block;"></canvas>
</body>
</html>

最新更新