2012-11-10 140 views
0

是否有僞選擇器或方法來檢測帶有ID的<section>標記。 I.E. <section id="no_display">僞選擇器

我有一個標題,它有一個35px的底部邊距。但是,我不想在一頁上應用底部邊距,但我想將其應用於所有其他頁面。

有沒有一種方法來檢測一個id和不應用margin?

<header> 
    //stuff here 
</header> 
<section id="no_display"> 
    //other stuff here 
</section> 

所以,如果<header>後面緊跟section id="no_display",不適用底邊距

希望這是有道理的。

+0

在這種情況下,你需要一個前面的兄弟選擇器,而不是僞類。不,那不存在。 – BoltClock

+0

@BoltClock - 好的,謝謝。任何其他的CSS想法的解決方法? –

+1

我已經發布了一個。 – BoltClock

回答

2

可以使用負利潤率爲您section賠償其前一個兄弟元素的margin-bottom

#no_display { 
    margin-top: -35px; 
} 
+0

這是一個我完全忽略的明顯答案。謝謝! –

2

你不經常使用pseudo-classes表示兩個或多個元素之間的關係;你使用combinators。在這種情況下,你需要一個前同步組合器。不幸的是,that doesn't exist

存在以下兄弟組合子。由於只有在section沒有該ID的情況下,您才真正希望保證金在那裏,因此您可以在header上切換底部邊距,以獲得section上的頂部邊距,並使用覆蓋規則,以便它具有該ID以刪除從中保證金:

header + section { 
    margin-top: 35px; 
} 

header + section#no_display { 
    margin-top: 0; 
} 

(你真的不因爲僅ID是足夠具體的,但這樣做可以幫助我告訴一目瞭然第二規則與第一需要像header + section#no_display選擇。)

+0

還沒有讀完。我的錯。你的答案是正確的,所以我拿下了我想象中的帽子:) – iMoses

+0

感謝您的好信息! –