Я хочу изменить размер элемента canvas динамически. Моя страница разделена на две части, где левая сторона имеет некоторые настройки, а правая сторона имеет элемент canvas. Поскольку страница может быть изменена, элемент canvas должен быть изменен вместе с ним. До сих пор я пытаюсь добиться этого с помощью сетки CSS и Eventlistener, который изменяет размер элемента canvas каждый раз, когда изменяется размер окна.
Теперь к актуальной проблеме: когда я устанавливаю ширину и высоту холста равными ширине и высоте CanvasContainer (в функции, выполняемой Eventlistener), div CanvasContainer не изменяет размер правильно. Фактически, когда я уменьшаю ширину окна, ширина div увеличивается. Если я оставлю эти две строки, div CanvasContainer изменяет размер, как и ожидалось.
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%;
}