【问题标题】:Auto width of images inside div display:table so they are of the same heightdiv display:table 内图像的自动宽度,因此它们具有相同的高度
【发布时间】:2014-08-14 19:07:05
【问题描述】:

我想在父级 display:table div 中显示具有 display:table-cell 样式的 div 内的图像。图片有各种高度,但都超过400px。我在他们身上设置了max-height: 200px。它在 Chrome 中运行良好,它会自动计算每个单元格的宽度,以便图像的高度大致相同(±2px)。但是,它在 IE 中不起作用,其中表格延伸到父 div 之外,尽管 max-width 和/或 width 设置为 100%。要修复它,可以使用table-layout:fixed,但图像的高度不同。有谁知道如何使它工作?谢谢。

JsFiddle:jsfiddle.net/6qdjdrLe/4

问题是在 IE 中,表格和表格行会超出容器的宽度,即使使用 table、tr 和 td 标签:jsfiddle.net/6qdjdrLe/7。表格布局修复了它,但制作了不同高度的图像。我希望图像具有相同的高度,并且还使表格不会溢出父 div。希望 IE 更聪明。

【问题讨论】:

  • 请展示一些代码,html和更多css,也可以放入jsfiddle.net。
  • @Jay,确实,这就是小提琴:jsfiddle.net/6qdjdrLe/4 目前,父 div 会在 IE 中溢出容器,但在 Chrome 中不会溢出,但如果 table-layout:fixed 添加到父级,它将不会t 溢出,但图像的高度不同。
  • 抱歉回复延迟。我已经检查过了,对我来说每个浏览器似乎都是一样的。你签的是什么版本的IE,我用的是11
  • 忽略我最后的评论。似乎 img 需要为 width: 100%;不是最大宽度:100%;见下文:)

标签: html css


【解决方案1】:
img {
    height: auto;
    max-height: 200px;
    vertical-align: middle;
    width: 100%;
}

【讨论】:

  • Alrite,酷!谢啦!一种特殊情况是图像宽度小于 100%,但我认为我可以处理。
  • 欢迎您。为什么一张图像会低于 100%?如果需要,我可以在那里提供帮助,只是想知道为什么?
  • 可能是当我有 5 张图片,4 张横向宽度为 200 和一张纵向宽度为 50,或类似的东西。我真的需要测试这种情况,但不确定是否值得担心,因为我故意加载大图像(例如,当容器最大为 1000 像素时,最大侧为 400 像素)。
  • 一旦你测试过并且它会导致问题,请不要犹豫让我知道,如果可能的话,我会尽力帮助。
  • 好的,谢谢!我认为这甚至可能是不可能的,因为浏览器会根据内容呈现表格单元格,因此图像的父 div 将具有一些不会超过图像宽度的宽度......不确定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-13
  • 2018-12-29
相关资源
最近更新 更多