2011-08-29 84 views
0

我想實現的是讓我的網站上招1px的下行連接的時候都處於活動狀態(對它們的用戶點擊)位置絕對上:積極的舉止怪異

我通過應用該這樣做全球風格:

a:active { 
    position:relative; 
    top:1px; 
} 

它當然可行 - 在大多數情況下。問題是當我嘗試在絕對定位的鏈接上做同樣的事情時。由於上述風格,將改變他們的立場相對,從而恢復他們對公文流轉,扭曲的佈局,所以我已經申請這種風格對他們來說:

#absolutly-positioned-link:active { 
    position:absolute; 
    /*and here I state their current position - 1px*/ 
} 

現在,而不是移動元件的像素下,從有些原因會將它發送到包裝元素的頂部。 這裏是發生什麼事情一個簡單的演示 - >http://jsfiddle.net/Husar/ns5L7/

在撥弄我有兩個例子中,你可以看到,在標題鏈接的作品很好,但點擊了上/下一個鏈接的底部只是他們推出來頂端。

我迄今發現的唯一的解決辦法是,而不是全局a:active風格我明確指出哪個環節都不能是絕對定位(即像一個長nav a:active, p a:active, h2 a:active, li a:active選擇器),比只應用樣式的絕對定位元素改變它們的座標,而不用在主動選擇器中說明它們是絕對定位的。 簡化,這個小提琴演示它 - >http://jsfiddle.net/Husar/HfvCs/

這工作正常,但我不認爲這是最優雅的解決方案,也不明白爲什麼會發生此行爲。

如果有人對這個問題有更多的瞭解,以及如何解決,幫助將不勝感激。

回答

3

問題是,您用position: relative;覆蓋了position: absolute;,所以定位完全失敗:P我通常使用margin作爲解決方法。但當然,這隻適用於如果你的元素不應該有任何其他頂部邊緣...

a:active { 
    margin-top:1px; 
}