将clearfix应用于nth-child而无需额外标记

时间:2012-09-25 15:22:39

标签: css responsive-design percentage css-selectors clearfix

首先,为了极其清晰,这里有一个JS小提琴,展示了我想要实现的目标:

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

以下是解释 - 我的理由:

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

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

一切运作良好 - 随着布局调整大小,图像会调整大小,连续的图库项目数量会根据百分比定义。

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

我知道有两种方法可以解决这个问题,但我并不热衷于这两种方法。

首先修复,只需在li元素上使用display:inline-block,顶部垂直对齐,就可以正确地传输所有内容... 然而,所有百分比都会被拍摄和画廊项目不再整齐地适应分配的空间。

第二次修复,给列表项目一个高度。这是我必要的路线 - 根据分辨率需要不同的高度 - 没什么大不了的,但不是那么整洁。

1 个答案:

答案 0 :(得分:6)

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

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

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

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