在CSS中,是否可以在换行前选择最后一个元素?

时间:2013-07-19 19:39:09

标签: css css-selectors

例如,

我有一堆div并排,每个div都有一个右边界:1px

父元素是一定的宽度,所以在某一点,额外的div包装到下一行。

从本质上讲,我不希望在换行前的最后一个div有一个border-right。

如果这没有意义,我可以创造一个小提琴。我只是想知道我可以在换行前定位最后一个div。 (last-child将定位下一行中不想要的最后一个div。)

2 个答案:

答案 0 :(得分:3)

计算您使用当前宽度获得的列数,硬编码或使用JS,然后使用nth-child选择器。

例如,如果每行有3列,每个div的类别为col,则

div.col:nth-child(3n){border-right:none;}

可以修改第n个子选择器,具体取决于div s的每一行中有多列。

答案 1 :(得分:2)

无法从多行选择最后一项,只能选择:last-child

如果您的元素按列排列,您可能会对多列模块感兴趣。它有一个列规则属性,类似于边框,但只在列之间垂直显示,从不在外边缘。

http://cssdeck.com/labs/febtiiet

.container {
  columns: 20em;
  column-rule: 1px solid;
}

可能需要前缀:http://caniuse.com/#feat=multicolumn

否则,你需要切换到左边的边框,正如MrLister建议的那样:

http://cssdeck.com/labs/f8qjngd4

.container {
  overflow: hidden;
  padding: 0;
  border-style: none;
}

.child {
  border-left: 1px solid;
  position: relative;
  left: -1px;
  display: inline-block;
  width: 20em;
}