【问题标题】:Img-thumbnail does not maintain aspect ratioimg-thumbnail 不保持纵横比
【发布时间】:2019-08-03 10:09:45
【问题描述】:

我正在尝试创建一个包含一些用户详细信息的表格,例如用户图片、电子邮件、年龄等。

我遇到的问题是缩略图图像没有正常的纵横比。另外,我正在使用 gravatar 链接作为图像的来源,具有一定的大小(50)。

您可以在下面的图片中看到问题。

This is how it's looking like

This is how I would like it to look like

代码如下:

<div class="container">
<main id="main" class="container-fluid">
  <div class="row">
    <div class="col-lg-12">
       <table class="table table-responsive">
           <thead>
             <th>Picture</th>
             <th>Other info</th>
           </thead>
           <tbody>
             <tr>
               <td>
                 <div class="media">
                   <img class="d-flex mr-3 img-thumbnail" src="http://www.gravatar.com/avatar/?d=identicon&s=50">
                 </div>
               </td>
               <td>
                 Other info (email, age, username etc.)
               </td>
             </tr>
           </tbody>
       </table>
    </div>
  </div>
</main>           
</div>

您可以在这个 JSfiddle 链接中找到问题和示例代码:https://jsfiddle.net/caw4qyk0/5/

我只能在 Firefox 中看到问题。

有没有办法解决这个问题?没有指定特定的宽度和高度? 任何帮助表示赞赏。

提前谢谢你!

【问题讨论】:

    标签: css html image bootstrap-4 thumbnails


    【解决方案1】:

    Flexbox 是个问题。包裹在图像元素周围的具有media 类的div 具有display: flex,这将对子元素的尺寸产生影响。我使用了您提供的 jsfiddle,并在 Firefox 中将图像显示为完美的正方形,并在图像本身的任何类上添加了 height: 50px;

    【讨论】:

    • 但是,如果我添加一个包含jsfiddle.net/p9n0k6oc 属性的额外 div,包裹图像,则纵横比是正确的。另外,为什么 display:flex 只会在 Firefox 中成为问题?
    • 弹性框会影响带有display: flex 的包装器的直接子元素。这就是为什么添加另一个包装器也有效的原因。 Firefox 对 Flexbox 的规范略有不同,所有浏览器的规范仍然略有不同……查看使用图表:caniuse.com/#search=flex。有关 flexbox 工作原理的更多信息,请查看这篇文章:css-tricks.com/snippets/css/a-guide-to-flexbox
    • 如果您没有在弹性容器中指定高度,弹性容器如何知道将高度设置为什么?另外,我不明白为什么添加包装 div 有效,因为大概外部 div 仍应由 flex 容器调整大小,因此也包含其中的图像。
    • 即使外部 div 被 flex 容器调整大小,内部的图像元素现在不再是 flex 子元素(您添加的 div 没有display: flex),因此它的行为符合预期。阅读 CSS-Tricks 文章,它比我更好地解释了 flexbox 的细微差别。多年来,我一直将那篇文章加入书签以供参考。
    猜你喜欢
    • 2012-08-25
    • 2017-12-30
    • 2018-04-02
    • 2018-03-11
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多