Bootstrap响应式图像网格

6
我想使用Bootstrap创建一个响应式图像网格。我有4张图片,需要在桌面尺寸下创建1x4网格,在移动尺寸下创建2x2网格。我尝试了以下代码,但是在桌面尺寸下图像之间有不必要的空白。而且对于移动尺寸没有任何空间。我该如何调整这个布局?
谢谢。
<div class="container">
    <div class="row">
        <div class="col-lg-3 col-md-3 col-sm-3 col-xs-6">
            <img src=https://i.scdn.co/image/2fd8fa0f7ef2f83691a0fb9628ee369b8e3b688e class="img-responsive">
        </div>
        <div class="col-lg-3 col-md-3 col-sm-3 col-xs-6">
            <img src=https://i.scdn.co/image/2fd8fa0f7ef2f83691a0fb9628ee369b8e3b688e class="img-responsive">
        </div>
        <div class="col-lg-3 col-md-3 col-sm-3 col-xs-6">
            <img src=https://i.scdn.co/image/2fd8fa0f7ef2f83691a0fb9628ee369b8e3b688e class="img-responsive">
        </div>
        <div class="col-lg-3 col-md-3 col-sm-3 col-xs-6">
            <img src=https://i.scdn.co/image/2fd8fa0f7ef2f83691a0fb9628ee369b8e3b688e class="img-responsive">
        </div>
    </div>
</div>

1个回答

11

Bootstrap 的列有 padding。

我会给你的 <div class="row"> 添加一个 class,并通过 CSS 去除列的 padding。

像这样:

<div class="container">
    <div class="row imagetiles">
        <div class="col-lg-3 col-md-3 col-sm-3 col-xs-6">
            <img src=https://i.scdn.co/image/2fd8fa0f7ef2f83691a0fb9628ee369b8e3b688e class="img-responsive">
        </div>
        <div class="col-lg-3 col-md-3 col-sm-3 col-xs-6">
            <img src=https://i.scdn.co/image/2fd8fa0f7ef2f83691a0fb9628ee369b8e3b688e class="img-responsive">
        </div>
        <div class="col-lg-3 col-md-3 col-sm-3 col-xs-6">
            <img src=https://i.scdn.co/image/2fd8fa0f7ef2f83691a0fb9628ee369b8e3b688e class="img-responsive">
        </div>
        <div class="col-lg-3 col-md-3 col-sm-3 col-xs-6">
            <img src=https://i.scdn.co/image/2fd8fa0f7ef2f83691a0fb9628ee369b8e3b688e class="img-responsive">
        </div>
    </div>
</div>

    <style>
  div.imagetiles div.col-lg-3.col-md-3.col-sm-3.col-xs-6{
  padding: 0px;
}
    </style>

JsFiddle演示

这样就解决了桌面端的空间问题。您可以通过调整CSS中列的内边距来调整图像之间的间距。对于移动设备,只需使用媒体查询即可。Bootstrap有以下查询:

/* Large desktops and laptops */
@media (min-width: 1200px) {

}

/* Landscape tablets and medium desktops */
@media (min-width: 992px) and (max-width: 1199px) {

}

/* Portrait tablets and small desktops */
@media (min-width: 768px) and (max-width: 991px) {

}

/* Landscape phones and portrait tablets */
@media (max-width: 767px) {

}

/* Portrait phones and smaller */
@media (max-width: 480px) {

}

例子:

    @media(max-width: 480px){
div.imagetiles div.col-lg-3.col-md-3.col-sm-3.col-xs-6{
      padding: 5px;}
}

有些图片的对齐方式不起作用。我该怎么解决?你可以在这里看到一个例子:https://jsfiddle.net/ovuncuzun/u65qx59w/1/ - nanokozmos
这是因为教父的图像尺寸与其他三个图像不同。教父的图像尺寸为640px x 634px,而其他三个图像为640px x 640px。 - NickyTheWrench
这些图片是随机出现的。即使它们不在运行时,我能把所有的图片都改成640像素乘以640像素吗?我正在使用AngularJS。谢谢。 - nanokozmos
我建议您在该网站上提出一个新问题,描述您的新问题是什么! - NickyTheWrench

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接