图像在较小的设备上移至下一行

时间:2018-07-10 21:46:15

标签: html css bootstrap-4

预期行为

图像应按比例缩小/放大并保持在同一行

实际行为

我创建了一行图像,这些图像应在较小的设备上按比例缩小,但它们会换行。


我正在使用Bootstrap 4。

代码

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

<!-- src omitted -->

<div style="margin:auto; display:table;">
  <img class="img-fluid" />  
  <img class="img-fluid" />  
  <img class="img-fluid" />
  <img class="img-fluid" />
  <img class="img-fluid" />
  <img class="img-fluid" /> 
</div>

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

2 个答案:

答案 0 :(得分:2)

使用flexbox并保留默认的nowrap

.img-fluid {
  min-width: 0;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<div class="d-flex justify-content-center">
  <img class="img-fluid" src="https://picsum.photos/200/200?image=1069">
  <img class="img-fluid" src="https://picsum.photos/200/200?image=1065">
  <img class="img-fluid" src="https://picsum.photos/200/200?image=1063">
  <img class="img-fluid" src="https://picsum.photos/200/200?image=1062">
  <img class="img-fluid" src="https://picsum.photos/200/200?image=1063">
  <img class="img-fluid" src="https://picsum.photos/200/200?image=1062">
</div>

要在两个方向上缩放,可以为图像添加另一个容器:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<div class="d-flex justify-content-center">
  <div><img class="img-fluid" src="https://picsum.photos/200/200?image=1069"></div>
  <div><img class="img-fluid" src="https://picsum.photos/200/200?image=1065"></div>
  <div><img class="img-fluid" src="https://picsum.photos/200/200?image=1063"></div>
  <div><img class="img-fluid" src="https://picsum.photos/200/200?image=1062"></div>
  <div><img class="img-fluid" src="https://picsum.photos/200/200?image=1063"></div>
  <div><img class="img-fluid" src="https://picsum.photos/200/200?image=1062"></div>
</div>

答案 1 :(得分:0)

您可以使用row中内置的colbootstrap4类来实现这一目标。

演示:http://jsfiddle.net/aq9Laaew/81140/

<div class="container">
    <div class="row">
        <div class="col">
            <img class="img-fluid" />
        </div>
        ...
    </div>
</div>

您也可以使用flexbox设置样式。

enter image description here

注意:请确保在父元素上使用align-items: flex-start;align-items: center;,因为align-items: stretch;默认值,因此是图片看起来像被接受的答案一样可怕。

更新:

接受的答案的作者说,设置align-items: flex-start;时没有区别。这是证明确实存在的证明:http://jsfiddle.net/aq9Laaew/81196/

enter image description here

未设置align-items的图像将默认设置为stretch,并且它们的拉伸程度太大,以至于我什至无法在屏幕截图中捕获它们。

但是,stretch效果可能是OP想要的,因此这是公认的答案。