在父级

时间:2016-07-05 09:18:58

标签: css safari webkit height box-sizing

在Safari中使用box-sizing: border-box时,在使用img和父元素上的填充时,会出现影响height: 100%元素高度的错误。

看到这个小提琴并在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 个答案:

答案 0 :(得分:2)

为高度为100%的图像添加包装,填充0:

https://jsfiddle.net/vgdz2Loj/

<div>
  <div class="wrapper">  
    <img src="http://placehold.it/40x40">
  </div>
</div>

.wrapper {
  height: 100%;
  padding: 0;
}