2010-06-22 49 views
4

對,所以這很奇怪。此代碼按預期工作::最後一個孩子的問題,當一個部分後面添加頁腳

HTML:

<section> 
    Section #1 
</section> 

<section> 
    Section #2 
</section> 

<section> 
    Section #3 
</section> 

CSS:

section{ 
    margin-right: 30px; 
} 
section:last-child{ 
    margin-right: 0; 
} 

前兩節得到30像素的權利保證金,而第三部分沒有得到一個右頁邊距。

現在,如果我在最後一節之後添加了一個頁腳元素,那麼:last-child將被忽略。這樣,所有三個部分都會有30px的右邊距。這在Mozilla和Webkit中都適用。

有沒有人有線索爲什麼這是,以及如何修復?

回答

5

:last-child意味着最後一個孩子,它對選擇器的其餘部分沒有影響,它是一個獨立的限制。這意味着它必須是最後一個孩子,不管元素類型或類別等等,它都是最後一個子元素,它們是。由於您的頁腳在此之後,因此沒有匹配元素均爲 a <section> a :last-child

這個選擇器是:last-of-type,但它沒有得到廣泛的支持。

+0

啊,這是總的感覺!非常感謝。 – Erik 2010-06-23 00:00:05

+0

@Erik - 歡迎:) – 2010-06-23 00:02:13

+0

謝謝,我假設和Erik一樣! – theorise 2010-06-28 12:19:38