:第一个孩子和:最后一个孩子同时

问题描述:

这可能很容易,因为我有一种感觉,我在这里错过了一个基本观点。:第一个孩子和:最后一个孩子同时

现状:

.singleOrder:first-child { 
    border-radius: 5px 0 0 0; 
} 

.singleOrder:last-child { 
    border-radius: 0 5px 0 0; 
} 

的作品真的很好,直到只有一个孩子。在这种情况下,第二个声明将覆盖第一个声明并且不能达到预期的效果。

什么是解决这个问题的最简短最优雅的方法?

拆分它:

.singleOrder:first-child { 
    border-top-left-radius: 5px; 
} 

.singleOrder:last-child { 
    border-bottom-left-radius: 5px; 
} 

或编写额外的规则:

.singleOrder:first-child:last-child { 
    border-radius: 5px 5px 0 0; 
} 
+0

它们和您的原始代码一样有效。但是,您也应该包含前缀属性。请参阅[此工具](http://border-radius.com/) – Yogu 2013-03-14 17:47:41

+0

另请参阅http://caniuse.com/border-radius – Lekensteyn 2013-03-14 17:48:17

+0

谢谢。第二个工作正常。我会选择这个答案,因为它是第一个。 – SquareCat 2013-03-14 17:48:45

使用:only-child

.singleOrder:only-child { 
    border-radius: 5px 5px 0 0; 
} 

更新:Yogu是正确的。我忘了提及。这应该在你的陈述之后。

+0

好输入!谢谢!它也可以工作。 – SquareCat 2013-03-14 17:49:08

+1

不确定这是否覆盖':first-child'和':last-child'规则。所以你应该确保这条规则在现有的两条之后出现。 – Yogu 2013-03-14 17:50:36