2013-10-18 57 views
0

我有一個列表,其中li:hoverli獲得一個底部邊界(它已經有一個頂部)。不幸的是,這導致兩個相鄰的邊界,所以現在2px寬,這是不好的。所以我想我可以在懸停的時候挑選一個margin-bottom:-1px;,它可以,但不幸的是,底部元素與當前元素重疊,所以我得到了不正確的邊框顏色。我可以使用CSS中的負邊距更改重疊順序嗎?

我希望嘗試做z-index:1;,但那沒什麼事。對我來說,這應該是做到這一點的方法。加入W3C!

我不能使用position

  • absolute是因爲我需要它是在流不走。
  • relative是不行的,因爲li有孩子ul s需要相對於父母ul定位。

有什麼辦法讓先前的元素在添加負餘量時重疊下一個元素?

現在,我可能不得不做一些jQuery黑客攻擊,這很容易通過CSS完成!

+0

你能撥弄它嗎?這將是更容易理解 – Hiral

+0

@手稿這 - http://jsfiddle.net/2nNzS/ - 是基本的想法。當您將鼠標懸停在某個元素上時,頂部和底部邊框應該全黑。但不幸的是,你會看到重疊。 – andrewb

回答

1

我不確定我是否瞭解您的問題,但以防萬一,請嘗試adjacent sibling selector。如果我正確理解你的問題,那麼下面應該工作:

li:hover + li{border-top:none !important;} 

也許你不需要!重要的聲明,但以防萬一。此外,使用這種技術,你可以用它作爲你提到的負邊距(或你需要的任何東西)

+0

是的,你一定理解它,因爲它工作!感謝您向鄰近的選擇器開放我的想法,哇!我不需要使用'!important',我會盡我所能避免在CSS中出現這種情況。 – andrewb

+0

很高興能有幫助:) – Devin

相關問題