在Safari中使用 box-sizing: border-box
时,在使用 height: 100%
和父元素上的填充时,会出现影响 img
元素高度的错误 .
看到这个小提琴,并在Chrome / Firefox和Safari之间进行测试,看看它们之间的区别:https://jsfiddle.net/Arko/66b9bt02/1/
以下是完整的参考代码:
HTML:
<div>
<img src="http://placehold.it/40x40">
</div>
CSS:
* {
box-sizing: border-box;
}
div {
padding: 15px;
height: 50px;
}
img {
height: 100%;
}
使用边框大小时,img高度应为20px(50px div高度减去2x 15px填充) . 这在Chrome和Firefox中是正确的 . 但Safari以30px的高度显示图像 .
-
如果我们在宽度而不是高度上测试它,没问题 .
-
如果我们删除填充或注释掉边框样式,没问题 .
-
如果我们使用其他块元素(例如div而不是img)来测试它,则没有问题 .
我发现没有报告此问题的其他实例 . 这是一个新的webkit bug报告吗?或者我错过了什么?
(在Safari 9.1.1和Webkit Nightly 202811中测试过)
1 回答
添加高度为100%的图像包装,填充0:
https://jsfiddle.net/vgdz2Loj/