css - 100% 高度 img 上带有父级填充的 Safari 边框高度错误

标签 css safari webkit height box-sizing

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

查看此 fiddle 并在 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 以 30 像素的高度显示图像。

  • 如果我们在宽度而不是高度上测试它,没问题。
  • 如果我们删除填充或注释掉边框样式,没问题。
  • 如果我们使用其他 block 元素(例如 div 而不是 img)对此进行测试,则没有问题。

我发现没有报告此问题的其他实例。这是要报告的新 webkit 错误吗?还是我遗漏了什么?

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

最佳答案

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

https://jsfiddle.net/vgdz2Loj/

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

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

关于css - 100% 高度 img 上带有父级填充的 Safari 边框高度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38199604/

相关文章:

css - 围绕主要内容和侧边栏的边框

php - preg_replace ('/[\\s]/' ,'&nbsp;' $mysqlData) 导致文本从 div 溢出

css - Safari 在悬停时加粗浅色@font-face 字体

javascript - 在浏览器开发工具中停止网络请求

css - -Internet Explorer 中的 webkit 支持

基于 webkit 的浏览器的 CSS 规则

CSS3 过滤器 :opacity(X) with fallback to opacity:X, 与过滤器相同:drop-shadow() 到 box-shadow

javascript - 在多个页面的js变量html中存储链接名称

javascript - window.matchMedia 在 Safari 中不起作用

webkitgtk如何根据资源的类型来控制资源加载?