2012-05-19 24 views
35

我工作的一個實驗&我發現,「綱要」 CSS2屬性不相同方式實現Webkit的&壁虎CSS「綱要」上的Webkit和壁虎

在下面的腳本不同的行爲表現,我有另一個div內的絕對位置div,但在其外面漂浮。 Webkit上的大綱概述了Gecko上的實際父分區,它擴展爲覆蓋子項。

http://jsfiddle.net/KrCs4/

我失去了什麼?是否有需要覆蓋Gecko的屬性?或者它應該被報告爲一個錯誤?

的Webkit截圖:

Webkit Screenshot

Firefox的截圖:

Firefox Screenshot

編輯:

它證實是一個錯誤,這裏有一個解決方法:http://jsfiddle.net/7Vfee/(您需要確保父母的位置:相對或絕對的t他的解決方法工作。

+0

唉不知道,我嘗試了不同的方法 – ShibinRagh

+0

Firefox的錯誤:https://bugzilla.mozilla.org/show_bug.cgi?id = 687311 – epascarello

回答

17

壁虎的這種不一致的行爲是衆所周知的,並且相當充分的記錄,但奇怪的是沒有MDN但在SitePoint Reference

火狐直至幷包括3.5版本將吸引各地的內容大綱概要一個元素溢出了邊界而不是圍繞元素的實際集合維度。

這繼續影響所有版本的Firefox。目前我沒有看到一個可行的解決方法,除了從其父母移除絕對定位的div,並將其放置在其他位置。

+1

爲什麼SitePoint比官方的W3C規範有更多的文檔? http://www.w3.org/TR/CSS2/ui.html#dynamic-outlines –

+0

@ Xavier Ho:SitePoint專注於瀏覽器兼容性和行爲。定義實現細節不是規範的工作。 – BoltClock

+0

W3C的工作是定義瀏覽器行爲,而不管實現如何。據我所知,輪廓在尺寸上並沒有很好的定義。 –

30

我有同樣的問題,所以我換它使用大綱使用的box-shadow:

box-shadow: 0px 0px 0px 1px #FFF; 

,而不是

outline:1px #dcdcdc solid; 
+0

後來的評論,但我想補充一點,Firefox會在任何內容上畫一個輪廓:在CSS中添加內容之後。如上所述使用box-shadow將解決問題。實際上,我能想到的實際使用輪廓的唯一原因是IE8的支持 - 顯然它可以做輪廓而不是盒子陰影。 – crowhill

+0

@crowhill使用輪廓的另一個原因是因爲它提供了添加偏移的方法。 –

+3

這應該是標記爲已更正的答案! –