2011-11-15 45 views
2

我有以下结构格式化的div通过CSS

<div class="mainmenu"> 
    <div> 
     Home 
    </div> 
    <div> 
     About us 
    </div> 
    <div> 
     Lorem 
    </div> 
</div> 

.mainmenu div 
{ 
    border-right:1px #000 solid; 
} 

有了这个,我可以启用所有div的右边界,但我不希望在最后一个div边界。是否有可能通过CSS来控制这个,而不需要修改上面的结构?

+1

http://stackoverflow.com/questions/7729566/separators-between-elements-without-hacks/7729610#7729610 – thirtydot

回答

7

是(以伪选择):

.mainmenu div:last-child 
{ 
    border-right:none; 
} 

注:仅支持在支持CSS3的浏览器。

1

CSS3现在让我们选择特定的“孩子”,并应用样式,像这样:

.mainmenu div:last-child{ 
border: none; 
} 

然而CSS3是不是又走下来旧的浏览器,因此另一种办法是给你的最后一个安全的路径DIV类“最后”和其样式,像这样的:

<div class="last"> 
    Lorem 
</div> 

.mainmenu .last{ 
border: none; 
} 

你可以有多个班在一个div这样你就可以申请“最后”选项以及任何其他的DIV称为例如

<div class="apple last"> 
    Lorem 
</div> 
+0

他不能改变HTML - 所以最后只儿童用CSS工作。 – easwee

+0

雅,这是更多的补充,让他知道它可能不适用于旧浏览器,但是,我应该指定。 – DBUK