2013-07-19 62 views
15

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

我有一堆由侧div的侧,并且每个div有一个边界 - 右:1px的

父元素是一定的宽度,以便在某个点处,额外的div包裹到下一行。

从本质上讲,我不想在换行之前为最后一个div使用border-right。

如果这没有意义,我可以创建一个小提琴。我只想知道我可以在换行之前锁定最后一个div。 (最后一个孩子将瞄准下一行不需要的最后一个div)

+0

它确实有道理,但创建一个小提琴无论如何。我想知道你是如何并排显示div的;与浮动,显示:内联块等? –

+2

无论如何,我的直觉告诉说,让div边框左移,然后隐藏容器左边的边框会更容易。 –

+1

@MrLister除非现在我们试图找到每个动态形成的行的第一个子节点,否则不会导致相同的问题?除非您计划通过给容器留下负余量来将该边框隐藏到容器中?但有可能边框需要在右边,在这种情况下,边框左边不会在包裹之前的最后一个元素上工作。 – Huangism

回答

3

找出当前宽度有多少列,可以是硬编码或JS,然后使用nth-child选择。

例如,如果你有每行3列,其中每一div有一类col这将是

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

的第n个孩子选择可以被修改取决于然而,许多列的div每一行中秒。

+3

如果元素的宽度不规则,那么这将不起作用。 – cimmanon

+0

如果他们有不规则的宽度,他可以用同样的想法附加一个css类。有了一个小小的JS,他可以瞄准每个尾帽div并将它放在上面 – Jnatalzia

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; 
} 
相关问题