这让我很困惑,也很有趣,我希望。
如果有人能指出我在 CSS/canvas 规范方面行为差异的根源,我很感兴趣,我知道有关如何填充父容器的其他解决方案,所以请不要这样的答案。
考虑这个 HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<style type="text/css">
html, body, #container {
height: 100%; width: 100%; padding: 0; margin: 0;
}
#container {
position: relative;
}
#content {
position: absolute;
border: 1px solid red;
background-color: blue;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: auto;
height: auto;
}
</style>
</head>
<body>
<div id="container">
<canvas id="content"></canvas>
</div>
</body>
</html>
JSFiddle:http: //jsfiddle.net/2zH5H/。此 HTML 导致画布的大小使用画布规范要求的默认宽度/高度 (300x150),而不是像 CSS 规则定义的那样填充父容器。您可以验证这是否有效,无需对任何其他块元素进行任何更改,例如 div:http: //jsfiddle.net/8AQVj/1/
同样,我们谈论的是屏幕上元素的大小,而不是画布上下文的尺寸。这种行为在 Chrome、Firefox 和 IE 中是一致的,所以我猜它必须源于某个地方的规范,但我找不到相关的片段。