【问题标题】:Remove margin responsive thumbnail grid删除边距响应缩略图网格
【发布时间】:2015-03-15 06:08:45
【问题描述】:

我创建了一个具有响应式 4-3-2-1 列结构的缩略图网格:25%、33.33%、50%、100%。但我希望能够删除每个状态下每个缩略图的最后一个边距,因此有 4 列(25%、25%、25%、25%)或 3 列(33.33%、33.33%、33.33%)等。现在最后一个缩略图跳到其他缩略图下方。我试图为此使用 :nth-child 。

用 div、无序列表 (ul) 或其他东西构建缩略图网格的最佳方法是什么?

谁能帮我解决这个问题?谢谢;-)

这里的例子:

Fiddle

Codepen

.thumb:nth-child(4n) {
margin-right: 0;}

【问题讨论】:

  • 您的问题是大小加起来超过 100%,因为 width 指的是一个盒子的内容,不包括填充,从不包括边距。作为开始使用box-sizing: border-boxpadding 而不是margin 上的.thumb。这使得例如的宽度25% 包括填充。之后尝试看看 Bootstrap 是如何实现它的网格的,关于这方面的一篇很棒的文章是 helloerik.com/…
  • 先试试,谢谢!

标签: html css css-selectors thumbnails


【解决方案1】:

选项 1

使用box sizing。将您的 margin 更改为 padding 并在您的 .thumb 上使用 box-sizing: border-box;。这意味着在输入百分比宽度时会考虑填充和边框。

JSFIDDLE

选项 2

使用calc。示例:

.thumb {
   width: calc(50% - 20px);
}

JSFIDDLE

我会让您根据浏览器支持来决定哪个更适合您。 :)

更新

要去掉右边的边距,你可以使用nth-child,就像你建议的那样:

@media all and (max-width: 800px) and (min-width: 601px) {
    .thumb {
        width: 50%;
    }
    .thumb:nth-child(2n+0) {
        padding: 0 0 20px 10px;
    }
}

请参阅this page 的底部示例。

JSFIDDLE

【讨论】:

  • 谢谢你的帮助,但是第4个缩略图还有右边距:-)
  • 可能您可以将填充更改为:0 10px 20px 10px;,或者绝对必须让它同时接触两个边缘?
  • 更新了摆脱多余填充/边距的答案
  • 感谢 Jamie 的帮助,但我只想要一个干净的缩略图网格,它们之间的比例为 500x310,边距空间为 20px,响应式为 4、3、2、1 等,但我也不想使用填充,因为我想在加载与图像相同大小的图像之前显示一个带有加载器的图像持有者(例如背景颜色红色)。希望你能理解,但是现在填充在图像之外,而且缩略图之间的空间在他们构建软件时也不相同,所以我可以快速设计,让它工作起来很麻烦,这只是开始令人沮丧!
猜你喜欢
  • 2016-04-04
  • 2014-06-14
  • 2022-01-04
  • 2015-02-09
  • 2015-05-20
  • 1970-01-01
  • 2012-07-19
  • 2016-05-13
  • 2013-08-06
相关资源
最近更新 更多