图像应按比例缩小/放大并保持在同一行
我创建了一行图像,这些图像应在较小的设备上按比例缩小,但它们会换行。
我正在使用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>
答案 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
中内置的col
和bootstrap4
类来实现这一目标。
演示:http://jsfiddle.net/aq9Laaew/81140/
<div class="container">
<div class="row">
<div class="col">
<img class="img-fluid" />
</div>
...
</div>
</div>
您也可以使用flexbox
设置样式。
注意:请确保在父元素上使用align-items: flex-start;
或align-items: center;
,因为align-items: stretch;
是默认值,因此是图片看起来像被接受的答案一样可怕。
接受的答案的作者说,设置align-items: flex-start;
时没有区别。这是证明确实存在的证明:http://jsfiddle.net/aq9Laaew/81196/
未设置align-items
的图像将默认设置为stretch
,并且它们的拉伸程度太大,以至于我什至无法在屏幕截图中捕获它们。
但是,stretch
效果可能是OP想要的,因此这是公认的答案。