先看测试代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
canvas {
background: green;
}
div {
background: grey;
}
</style>
</head>
<body>
<div>
<canvas id="canvas"></canvas>
</div>
<!-- <script src="./index.ts"></script> -->
</body>
</html>
代码很简单,就是div
下包含了一个canvas
,没有其他多余设置。canvas
在没有设置属性或者样式表中没有设置width
和height
的情况下,默认应该是300*150的尺寸。按我的理解,外层的div
的高度应该是150px
,但实际情况却不是这样。
在Chrome中,div
的高度是154px
在Firefox中,div
的高度是155.6px
而且在两个浏览器中,canvas
的display
属性都是inline
,如果修改成block
的话,外部的div
的高度就是150px
了。考虑到canvas
默认是inline
元素,我尝试修改line-height
属性,不过没有任何作用。
所以我的主要疑惑是:
-
canvas
外部元素的高度是如何计算出来的(display
是inline
的情况下) -
canvas
作为一个inline
元素,为什么行为和其他inline元素不同,比如可以设置height
,line-height
也好像没什么作用。