【发布时间】:2021-12-18 07:35:32
【问题描述】:
我正在尝试使用 Javascript 而不是 CSS 使画布元素适合其容器 div,因为这样它不会拉伸画布内绘制的任何内容。
目前,如果我刷新页面,有时画布元素完全适合其中。其他时候,当我刷新时,它的宽度大于容器,它的高度小于容器。我不知道为什么在刷新页面时会出现这种不同的行为,即使没有调整窗口大小。
这是我设置画布大小的方法:
const ctxX = canvasParent.offsetWidth - 4;
const ctxY = canvasParent.offsetHeight - 4;
canvasEl.width = ctxX;
canvasEl.height = ctxY;
const ctx = canvasEl.getContext("2d");
我读到这样的设置大小只有在容器相对定位时才有效,所以这是容器的 CSS:
display: block;
position: relative;
height: 60%;
margin-top: 2%;
border: 2px solid v.$border;
【问题讨论】:
-
我不确定这是否与您的问题有关,但如果您使用百分比来表示身高等问题,您会非常头疼,而且您将要处理非常奇怪的事情,所有时间。
display: flex是你的朋友。 -
谢谢,这似乎是一个值得考虑的好建议,但弯曲不会导致每个孩子的身高相同吗?我希望这个比它上面的容器有更大的高度
-
@Matriarx 使用 w3schools 会更让人头疼,请不要链接到它们 (meta.stackoverflow.com/questions/280478/why-not-w3schools-com)
-
请创建一个minimal reproducible example,以便我们查看所有相关代码。
标签: javascript css html5-canvas css-position