【问题标题】:How do I make a photo-gallery like Facebook?如何制作像 Facebook 一样的照片库?
【发布时间】:2019-11-08 05:22:00
【问题描述】:

我正在制作一个 4x3 图片库,其中包含来自数据库的图片。 所有图片都有不同的尺寸。 使用 Bootstrap 和 CodeIgniter 我为每个图像制作行和列。 现在我想要宽图片适合行的高度,水平居中并隐藏水平溢出。 我还希望高大的图片适合列的宽度,垂直居中并隐藏垂直溢出。就像 Facebook。

左边距:自动; 边距右:自动;不要将图像居中。

我的索引页面:

<h1><?=$title?></h1>

<?php $i = 1; foreach ($photos as $photo) {
    if ( $i % 3 == 1 ) { ?>
        <div class="row gallery-row">
    <?php } ?>
    <div class="col-md-4">
        <img class="gallery-image" src="<?php echo site_url(); ?>assets/images/<?php echo $photo['photo_name'];?>">
    </div>
    <?php if ( $i % 3 == 0 ) { ?>
        </div>
    <?php }
    $i++;
} ?>

我的 CSS:

.row.gallery-row{
    height: 25%;
}

.gallery-image{
    height : 100%;
    overflow:hidden;
    display: table-cell;
    text-align: center;
}

我得到的最接近的是上面的 CSS:图像适合行的高度并且溢出被隐藏。 我仍然希望图像居中,如果图像高然后宽,他们应该优先适应宽度。 这是页面的样子

左下角的图片上有一个女人,但它没有显示,因为它没有居中。

解决方案:我将我的 css 更改为:

.gallery-image{
    height : 100%;
    width : 100%;
    object-fit: cover;
}

我的页面现在看起来像这样: 在行之间添加一些填充将使它看起来像 facebook。

【问题讨论】:

  • 我不确定这是否可以帮助您。尝试添加到画廊图像类 {display:block;margin:0 auto}
  • 这会将较小的图像居中,但不会将左下角的图像居中。
  • 我不明白左下角图片的问题。请为我们提供一个小提琴,以便我们测试您的代码
  • 这是原始图像:mk0discoverbanfhesjg.kinstacdn.com/wp-content/uploads/2017/12/… 你可以看到如果图像在他的容器中居中,我们将能够看到那个女人。你用小提琴是什么意思?我该如何提供?

标签: php css codeigniter image-gallery


【解决方案1】:

也许在你的.gallery-image css 中添加object-fit 是你想要的。

【讨论】:

  • 谢谢,这正是我想要的。我将我的 css 更改为 .gallery-image{ height : 100%;宽度:100%;适合对象:封面;我的页面现在看起来像这样。 imgur.com/a/EZ3xTtW
  • 可以使用,但请记住,IE11 不支持这个 css 属性
  • 不错 :) 有 a few workarounds 适用于 ie11。
猜你喜欢
  • 1970-01-01
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 2018-11-02
  • 1970-01-01
  • 2018-08-18
相关资源
最近更新 更多