4

首先,为了非常清楚,这里有一个 JS fiddle 展示了我想要实现的目标:

http://jsfiddle.net/bb_matt/VsH7X/

这是解释-我的理由:

我正在使用 1140 网格框架创建一个响应式站点。这是一个相当复杂的布局。

我创建了一个可重复使用的简单画廊类,它可以放入任何定义的列大小并使用媒体查询,我将相关的百分比宽度应用于 li 元素。每个 li 元素的右边距为 5%。我在媒体查询中使用 nth-child(xn+x) 来删除每行末尾的右边距。

一切正常 - 图像随着布局调整大小而调整,连续画廊项目的数量正如我根据百分比定义的那样工作。

唯一需要解决的问题是在行之间清除。我无法添加额外的 html 标记,并且我想避开过于复杂的 jquery 修复。

我知道解决这个问题的两种方法,但我并不热衷于其中任何一种。

第一个修复,简单地在 li 元素上使用 display: inline-block ,顶部垂直对齐,一切都会正确流动......但是,所有百分比都会被拍摄,并且画廊项目不再整齐地适合分配的空间。

第二个修复,给列表项一个高度。如果有必要,我会沿着这条路线走——它需要不同的高度,具体取决于分辨率——没什么大不了的,但不是那么整齐。

4

1 回答 1

6

我在这里更新了你的小提琴:http: //jsfiddle.net/VsH7X/5/

clear: left在每个新行的第一个项目中添加了一个。

ul.gallery li:nth-child(5n+6) {
  clear: left;
}

请记住,:nth-child伪类在 IE6-8 或 FF3 及以下版本中不起作用。​</p>

于 2012-09-25T19:16:00.973 回答