如何
aside :first-child {
margin-top: 0;
}
aside :last-child {
margin-bottom: 0;
}
首先/最後一個元素可以是任何一種元素(h1
,h2
,...,p
,div
,span
)
DEMO
注意,有是aside
和first-child
/last-child
之間的空格。沒有它,造型將適用於第一個/最後一個aside
。
如果將在aside
多層次和傳播進一步下跌是不可取的,最好是用
aside > :first-child {
margin-top: 0;
}
aside > :last-child {
margin-bottom: 0;
}
爲了只選擇aside
的直接孩子。
Propagation vs. no propagation demo(當然,margin
將不適用於內聯元素如span
,em
,或strong
- 它只是說明如何傳播的作品。)
支持:由於本代爾已經指出,last-child
是CSS3 pseudo-class。它不支持IE8或更高版本。此外,first-child
是在IE8和7中的越野車。
來源
2012-07-25 14:29:16
Ana
唯一需要注意的是這個解決方案是':last-child'在IE9之前不能使用任何東西。 ':first-child'可以使用IE7和IE8,但它有一些古怪的行爲。這是最優雅的解決方案,但是如果您需要全面的瀏覽器支持,那麼您可能會遇到一些拙劣的解決方案。不過好的瀏覽器將得到這些選擇器的全力支持。 – 2012-07-25 14:34:34
瀏覽器支持是一個問題,但越來越多,我可以讓小東西在視覺上降級。感謝Ana,我認爲自從我開始使用CSS以來,會有相當不錯的瀏覽器支持。 使用「擱置:第一胎」還是「擱置」:第一胎解析器的效率有什麼優勢/劣勢? – PeterB 2012-07-25 14:41:07
實際上,最好指定'aside':first-child'來阻止傳播給子女的孩子...'擱置' - 我沒有考慮到你可能在' aside'。 – Ana 2012-07-25 14:47:21