我试图将div设为其内容的大小,但我正在处理一个鬼线。有人可以看看吗?
* {
margin: 0;
padding: 0;
}
div#holder {
background-color: blue;
display: inline-block;
}
canvas {
cursor: pointer;
background-color: gray;
}
<div id="holder">
<canvas id="canvas" width="300" height="300"></canvas>
</div>
答案 0 :(得分:2)
小间隙是因为容器是内联元素,并且为字体中的下行元素(例如j,g,y)保留了空间。通过在canvas规则中添加vertical-align:top来轻松删除它:
canvas {
cursor: pointer;
background-color: gray;
vertical-align: top;
}
<强> jsFiddle example 强>
或在div上将font-size设置为零:
<强> jsFiddle example 强>
或浮动画布:
<强> jsFiddle example 强>
答案 1 :(得分:1)
我发现有三个选项:
将display:block;
添加到canvas
将vertical-align:top;
添加到canvas
将display:inline-flex;
设置为div#holder
答案 2 :(得分:0)
默认情况下,画布是内嵌呈现的,就像字母一样,因此您可以使用这些解决方案:
display:block
至canvas
vertical-align: bottom;
到画布float: left;
到画布line-height: 0;
至div#holder
答案 3 :(得分:0)
答案 4 :(得分:0)
canvas {
cursor: pointer;
background-color: gray;
vertical-align: top;
}
只需添加vertical-align:top;画布,并修复它。