【发布时间】:2020-05-14 07:51:30
【问题描述】:
我想动态调整画布元素的大小。我的页面分为两部分,左侧有一些设置,右侧有一个画布元素。由于页面可能会调整大小,因此画布元素应随之调整大小。 到目前为止,我正在尝试使用 CSS 网格和一个事件监听器来实现这一点,它会在每次调整窗口大小时调整画布元素的大小。
现在来看实际问题:当我将画布宽度和高度设置为 CanvasContainer 的宽度和高度(在事件监听器运行的函数中)时,CanvasContainer div 没有正确调整大小。事实上,当我使窗口的宽度变小时,div 的宽度会增加。如果我留下这两行 CanvasContainer div 会按预期调整大小。
HTML:
<div class="Container">
<div class="Control">
<input id="StateCodeText" type="text" placeholder="State code">
<br>
<input id="StateOutputText" type="text" placeholder="State output">
<br>
<button id="NewStateButton">New state</button>
</div>
<div class="CanvasContainer">
<canvas></canvas>
</div>
</div>
Javascript:
let CanvasContainer = document.querySelector(".CanvasContainer");
Resize();
window.addEventListener("resize", Resize);
function Resize() {
canvas.width = CanvasContainer.clientWidth;
canvas.height = CanvasContainer.clientHeight;
}
CSS:
.Container {
display: grid;
grid-template-columns: 1fr 8fr;
height: 100%;
}
.CanvasContainer {
border: 2px solid rgb(255, 0, 13);
width: 100%;
height: 100%;
}
【问题讨论】:
标签: javascript css grid