2013-03-14 178 views
2

這可能很容易,因爲我有一種感覺,我在這裏錯過了一個基本觀點。:第一個孩子和:最後一個孩子同時

現狀:

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

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

的作品真的很好,直到只有一個孩子。在這種情況下,第二個聲明將覆蓋第一個聲明並且不能達到預期的效果。

什麼是解決這個問題的最簡短最優雅的方法?

回答

4

拆分它:

.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

1

使用: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