2014-03-31 66 views
0

在CSS中我只想在兄弟之间添加垂直边框。第一个div和最后一个div兄弟不应该有一个垂直边界b/c它将在div链的末端。我如何使用css3来做到这一点?如何在div div之间只添加左右边框

例如:

<section> 
<div>Test1</div> 
<div>Test2</div> 
<div>test3</div> 
    ... 
<div>Testn</div> 
</section> 

CSS3:

section ~ div { 
border-left: 1px solid #557; 
border-right: 1px solid #557; 
} 

回答

1

试试这个:

section ~ div { 
    border-left: 2px solid #557; 
} 
section ~ div:first-child { 
    border-left: none !important; 
} 

所有div除了第一个div得到他们的左边2px的边框;第一个div在左侧没有边框。请注意,为了使其在IE8及更早版本中工作,您需要在页面开始处声明<!DOCTYPE >。

1

我不知道我是否理解你是对的,但首先要说的是你可能误解了~ -notation。与section ~ div你正在造型所有兄弟姐妹部分这是divs。 (例如为:<section></section><div id="firstSibling"></div>...

你可能想要做的是这样的:

section div:not(:first-child):not(:last-child) { 
    border-left: 1px solid #557; 
    border-right: 1px solid #557; 
} 

(如果我理解你的权利)

又见JsFiddle-Demo