【问题标题】:6 images centered, but 3 next to each other6 个图像居中,但 3 个彼此相邻
【发布时间】:2016-09-08 15:52:43
【问题描述】:

我正在尝试制作一个响应式网站,我需要创建一个主页,其中包含 2 行 6 张图片(每行 3 张图片),当您缩小屏幕时,这些图片会在彼此下方滑动。

可以看到我正在做的一个例子:http://www.mijncreaties.com/opstal/

当您缩小屏幕时,您会看到图像如何一张一张地滑到下方。但就在图像滑到旁边的图像下方之前,右侧有一个小间隙(因为它们都与左侧对齐)。

图像宽 330 像素,页面最大宽度为 1000 像素。当您使页面小于 990 像素(假设为 980 像素)时,右侧的图像会滑到其余图像下方。但这留下了 320 像素之间的差距。只是小到可以显示图像,但大到足以引起注意。如果左边的两个图像可以在中心对齐,它将填补一些空白。

全宽:

[image] [image] [image]
[image] [image] [image]

较小

[image] [image]-small gap-
[image] [image]-small gap- 
[image] [image]-small gap-

最小的

[image]-small gap-
[image]-small gap-
[image]-small gap-
[image]-small gap-
[image]-small gap-
[image]-small gap-

是否有可能使图像始终在页面中居中,但当屏幕变小时仍然在彼此下方滑动?

它的外观示例:

| [image] [image]      |
| [image] [image]      |

我希望它像这样:(居中)

|   [image] [image]    |
|   [image] [image]    |

或者也许:(让它有点伸展)

| [ image ] [ image ]  |
| [ image ] [ image ]  |

我尝试了 display:block;margin-left:auto;margin-right:auto;,但这会将每个图像放在彼此下方,即使页面处于最大宽度也是如此。

如果有人可以给我一个工作示例,说明在调整窗口大小时使图像缩小并增长到一定大小的方法,那也可能有效。请查看主页下方的社交媒体块(我只是不知道他们是如何做到的......)

当前代码:

<a href="http://www.mijncreaties.com/opstal/files/2012/09/feesten-1.jpg" class="borderit"><img src="http://www.mijncreaties.com/opstal/files/2012/09/feesten-1.jpg" alt="feesten" width="330" height="220" class="alignnone size-full wp-image-931" srcset="http://www.mijncreaties.com/opstal/files/2012/09/feesten-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/feesten-1-300x200.jpg 300w" sizes="(max-width: 330px) 100vw, 330px"></a><a href="http://www.mijncreaties.com/opstal/files/2012/09/trouwen-1.jpg" class="borderit"><img src="http://www.mijncreaties.com/opstal/files/2012/09/trouwen-1.jpg" alt="trouwen" width="330" height="220" class="alignnone size-full wp-image-933" srcset="http://www.mijncreaties.com/opstal/files/2012/09/trouwen-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/trouwen-1-300x200.jpg 300w" sizes="(max-width: 330px) 100vw, 330px"></a><a href="http://www.mijncreaties.com/opstal/files/2012/09/catering-1.jpg" class="borderit"><img src="http://www.mijncreaties.com/opstal/files/2012/09/catering-1.jpg" alt="catering" width="330" height="220" class="alignnone size-full wp-image-929" srcset="http://www.mijncreaties.com/opstal/files/2012/09/catering-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/catering-1-300x200.jpg 300w" sizes="(max-width: 330px) 100vw, 330px"></a><a href="http://www.mijncreaties.com/opstal/files/2012/09/condoleance-1.jpg" class="borderit"><img src="http://www.mijncreaties.com/opstal/files/2012/09/condoleance-1.jpg" alt="condoleance" width="330" height="220" class="alignnone size-full wp-image-930" srcset="http://www.mijncreaties.com/opstal/files/2012/09/condoleance-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/condoleance-1-300x200.jpg 300w" sizes="(max-width: 330px) 100vw, 330px"></a><a href="http://www.mijncreaties.com/opstal/files/2012/09/zaalhuur-1.jpg" class="borderit"><img src="http://www.mijncreaties.com/opstal/files/2012/09/zaalhuur-1.jpg" alt="zaalhuur" width="330" height="220" class="alignnone size-full wp-image-934" srcset="http://www.mijncreaties.com/opstal/files/2012/09/zaalhuur-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/zaalhuur-1-300x200.jpg 300w" sizes="(max-width: 330px) 100vw, 330px"></a><a href="http://www.mijncreaties.com/opstal/files/2012/09/fotos-1.jpg" class="borderit"><img src="http://www.mijncreaties.com/opstal/files/2012/09/fotos-1.jpg" alt="fotos" width="330" height="220" class="alignnone size-full wp-image-932" srcset="http://www.mijncreaties.com/opstal/files/2012/09/fotos-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/fotos-1-300x200.jpg 300w" sizes="(max-width: 330px) 100vw, 330px"></a>

CSS:

img.size-full, img.size-large {
    max-width: 100%;
    height: auto;
}
img {
    max-width: 100%;
    height: auto;
    vertical-align: top;
    margin-bottom: 18px;
}

【问题讨论】:

  • 可以在包含图片的div中设置text-align:center.entry-content{text-align:center}
  • 当屏幕调整大小时,图像是保持相同大小还是百分比宽度?
  • 目前它们的大小保持不变,但如果我知道如何在调整大小时控制它们的增长,那也可能会奏效。我真的不知道该怎么做。

标签: html css image responsive-design


【解决方案1】:

您需要为此使用媒体查询。我在下面使用display:flex 做了一个示例。您不需要添加引导程序 - 我认为不需要完整的库来实现这一点

.wrapper { display:flex; flex-direction:row; flex-wrap:wrap; }
.wrapper > a { display:block; width:33.333333%; text-align:center; }
.wrapper img { display:block; margin:auto; }


@media (max-width: 990px) {
  .wrapper > a { width:50%; }
}


@media (max-width: 660px) {
  .wrapper > a { width:100%; }
}
<div class="wrapper">
<a href="http://www.mijncreaties.com/opstal/files/2012/09/feesten-1.jpg" class="borderit">
  <img src="http://www.mijncreaties.com/opstal/files/2012/09/feesten-1.jpg" alt="feesten" width="330" height="220" class="alignnone size-full wp-image-931" srcset="http://www.mijncreaties.com/opstal/files/2012/09/feesten-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/feesten-1-300x200.jpg 300w"
  sizes="(max-width: 330px) 100vw, 330px">
</a>
<a href="http://www.mijncreaties.com/opstal/files/2012/09/trouwen-1.jpg" class="borderit">
  <img src="http://www.mijncreaties.com/opstal/files/2012/09/trouwen-1.jpg" alt="trouwen" width="330" height="220" class="alignnone size-full wp-image-933" srcset="http://www.mijncreaties.com/opstal/files/2012/09/trouwen-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/trouwen-1-300x200.jpg 300w"
  sizes="(max-width: 330px) 100vw, 330px">
</a>
<a href="http://www.mijncreaties.com/opstal/files/2012/09/catering-1.jpg" class="borderit">
  <img src="http://www.mijncreaties.com/opstal/files/2012/09/catering-1.jpg" alt="catering" width="330" height="220" class="alignnone size-full wp-image-929" srcset="http://www.mijncreaties.com/opstal/files/2012/09/catering-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/catering-1-300x200.jpg 300w"
  sizes="(max-width: 330px) 100vw, 330px">
</a>
<a href="http://www.mijncreaties.com/opstal/files/2012/09/condoleance-1.jpg" class="borderit">
  <img src="http://www.mijncreaties.com/opstal/files/2012/09/condoleance-1.jpg" alt="condoleance" width="330" height="220" class="alignnone size-full wp-image-930" srcset="http://www.mijncreaties.com/opstal/files/2012/09/condoleance-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/condoleance-1-300x200.jpg 300w"
  sizes="(max-width: 330px) 100vw, 330px">
</a>
<a href="http://www.mijncreaties.com/opstal/files/2012/09/zaalhuur-1.jpg" class="borderit">
  <img src="http://www.mijncreaties.com/opstal/files/2012/09/zaalhuur-1.jpg" alt="zaalhuur" width="330" height="220" class="alignnone size-full wp-image-934" srcset="http://www.mijncreaties.com/opstal/files/2012/09/zaalhuur-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/zaalhuur-1-300x200.jpg 300w"
  sizes="(max-width: 330px) 100vw, 330px">
</a>
<a href="http://www.mijncreaties.com/opstal/files/2012/09/fotos-1.jpg" class="borderit">
  <img src="http://www.mijncreaties.com/opstal/files/2012/09/fotos-1.jpg" alt="fotos" width="330" height="220" class="alignnone size-full wp-image-932" srcset="http://www.mijncreaties.com/opstal/files/2012/09/fotos-1.jpg 330w, http://www.mijncreaties.com/opstal/files/2012/09/fotos-1-300x200.jpg 300w"
  sizes="(max-width: 330px) 100vw, 330px">
</a>
  </div>

如果您希望它们随页面调整大小 - 只需从实际图像中删除大小属性并将宽度更改为百分比(例如,在上述样式中添加 width:100%;.wrapper img

【讨论】:

  • 说真的,这是完美的。只需稍微微调图像的样式,但这给图像带来的效果正是我想要的。非常感谢。
【解决方案2】:

您可以为此目的使用引导框架,否则您需要媒体查询来实现响应式布局。这是参考http://www.w3schools.com/cssref/css3_pr_mediaquery.asp

【讨论】:

  • 感谢您的评论。我将对此进行阅读,我认为将来更好地理解这一点将非常有帮助。目前我使用了其他人的解决方案,它更适合我的需求。
【解决方案3】:

尝试使用 Bootstrap。 Bootstrap 是进行响应式设计的终极工具。使用他们的Grid,您可以相当轻松地创建公鸡。尝试按照链接中的说明使用带有col-md-4 类的 div 创建图像

类似:

<div class="row"> <div class="col-md-4">[image]</div <div class="col-md-4">[image]</div> <div class="col-md-4">[image]</div> </div

如果您是 Bootstrap 的新手。检查this 链接以帮助您入门。您所要做的就是在 Bootstrap CDN 标题下添加 3 行,您就可以开始了

【讨论】:

  • 谢谢,我去看看,看来还是很好学的东西。
  • 是的,完全是。它还创建了一堆类来创建错误或成功消息。完全值得学习
【解决方案4】:

使用 Bootstrap 网格系统。它将使您更轻松地为每个屏幕尺寸进行设计。 (小型(移动)中型(平板电脑)和大型(显示器))。使用容器,然后在其中创建创建行,然后使用列在其中放置图像。

<div class = 'container'>
 <div class = 'row'>
  <div class='col-xx-xx'> 'Your images go here' </div>
</div>

第一个 xx 表示屏幕大小。例如:lg、md、sm、xs。第二个表示列号。 现在无论您使用容器流体还是简单容器,这取决于您的样式。 使用 Bootstrap 文档作为参考。简单易懂:

http://getbootstrap.com/css/

http://getbootstrap.com/2.3.2/scaffolding.html

【讨论】:

  • 感谢您的评论。我将对此进行阅读,我认为这对将来更好地理解这一点很有帮助。目前我使用了其他人的解决方案,它更适合我的需求。
猜你喜欢
  • 2016-09-14
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多