【问题标题】:Bootstrap4: Align image in Media ListBootstrap 4:在媒体列表中对齐图像
【发布时间】:2018-08-02 17:32:03
【问题描述】:

我尝试按照 Bootstrap 4 的示例获取 media list 的图像大小为 96x96px(固定)。只要图像是正方形的,它就可以正常工作。一旦图像比高度更宽(例如 96x72)或反之亦然(例如 49x96),该示例就无法运行。图像没有垂直居中(第一张图像),或者它们没有在列的中间对齐(第二张图像)并且没有填满整个列。

我尝试了几个例子,.mx-auto d-blocktext-align:center 但它们都没有按要求工作。

注意:我按照img-thumbnail 中的建议放置了图像,但这也没有任何效果。 ==>

如何正确制作媒体列表,以便 Bootstrap 4 中的给定示例在没有 square 图像的情况下也能正常工作。

【问题讨论】:

  • 您对这里有什么期望?您希望所有图像在媒体列表左侧都有一个固定宽度的占位符,而不管所有图像的尺寸?
  • 是的 - 这就是我想要的 - 见下文

标签: bootstrap-4


【解决方案1】:

你可以用 div 包裹你的图片,将 div 设置为 flex-box,这样你就可以轻松地将图片定位在里面,并通过调整.flex 属性来调整 div 和media-body 的比例以达到你想要的效果。

<div class="media">
    <div class="media-image-holder">
        <img />
    </div>
    <div class="media-body row">
        ...
    </div>
</div>

样式:

/* holder of media-image has fixed width of 96x96px */
.media .media-image-holder {
    margin-right: 10px; /* spacing to the next component */
    flex: 0 0 96px;     /* fixed size with 96x96 px     */

    /* in order to center the image */
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    align-items: center;
}
.media .media-body {
    margin-right: 0px;
}

我不知道您是否希望图像流畅。如果你这样做了,你只需要给它们添加.img-fluid 类。

编辑:已更新为 96x96px 的固定尺寸,并更改了媒体主体的样式以在末尾具有适当的边距。

小提琴: http://jsfiddle.net/aq9Laaew/125395/

【讨论】:

  • 首先感谢您的建议。它在一定程度上有效——但并不完全。如果您调整显示大小而不是容器大小,即media-image-holder 也会调整大小。但事实上我知道它的最大尺寸(即 96x96)。不想要的效果是宽度也增加了......我添加了margin-right: 10px; flex: 0 0 96px;,它解决了这个问题。
  • 我应该更新你上面的建议吗?还是其他的cmets?
  • @LeO:您可以编辑我的帖子,也可以更新您的 OP 以声明最大尺寸为 96x96?
  • 谢谢,我已经更新了 OP,因为稍微改变了样式以符合我的要求。似乎 Bootstrap 做了额外的(不需要的)尺寸对齐。
猜你喜欢
  • 1970-01-01
  • 2019-12-14
  • 2018-04-04
  • 2019-12-12
  • 1970-01-01
  • 2017-06-13
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
相关资源
最近更新 更多