【问题标题】:Safari border-box height bug on 100% height img with padding on parent100% 高度 img 上的 Safari 边框框高度错误,父级上有填充
【发布时间】:2016-11-07 01:33:08
【问题描述】:

在 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 错误吗?还是我错过了什么?

(在 Safari 9.1.1 和 Webkit Nightly 202811 中测试)

【问题讨论】:

  • 它在我的 Safari 5.1.7 中呈现 20px。

标签: css safari webkit height box-sizing


【解决方案1】:

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

https://jsfiddle.net/vgdz2Loj/

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

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

【讨论】:

    猜你喜欢
    • 2016-02-11
    相关资源
    最近更新 更多