2013-02-02 116 views
1

Blue inline-block #bvertical-align: middle放置在red #a的內部。在某個時刻,blue #b有其父母的全部身高。在Opera中沒有明顯原因的滾動條顯示

http://jsfiddle.net/TK2qs/1/

麻煩製造者是Opera只[1],這是把垂直滾動條上的窗口,即使有低於red parent #a一些空間[2]。超級搞笑的細節是,標記中沒有任何東西似乎佔據了低於red #a的額外空間 - 即使document element也不佔用這個空間。

display: inline-blockvertical-align: middle規則blue #b被丟棄時,被註釋的行爲消失。不過,找到一個解決這兩個規則的解決方案會很有用。

若要在JSFiddle中重現問題,請拖動右下角子框的邊框。

感謝您的關注!

[1_]僅在當前版本中檢查:12.11。

[2_] [jsfiddle.net示例]中的一些40-50像素[1]。尺寸因red #a高度而異。

回答

1

http://jsfiddle.net/Mpmgv/

我發現兩種解決自己。

首先是隱藏溢出blue #b。事實上,這是一個可行的解決方案,讓我覺得隱形大元素可能位於blue #b的某處,而不是其他地方。

第二個解決方法是在blue #b內部生成合成絕對定位的子項。因此,打算放入blue #b的所有內容都將進入合成兒童。

您可以通過在red #a元素上添加適當的類來檢查這兩種解決方案。

儘管如此,我還是等待並高度評價關於在Opera中出現這種奇怪問題的原因。

2

我同意furikuretsu的回答。 overflow:hidden擺脫神祕的隱形內容。

奇怪的是,我放在div#c裏的文字越多,空間就越小。當文本填滿高度的一半時,空間完全消失。這是一個觀察,而不是解決方案!

我將此報告爲Opera的一個錯誤。不知道它是否會做出任何好的想法......

+0

關於#c的內部內容大小和空間#a下面的關係真的很好的觀察,謝謝! – fyodorananiev