檢查了以下工作:IE8錯誤與最小高度和溢出:隱藏?
http://jsfiddle.net/symposion/P8KBe/7/
在IE8和之後,Chrome/Firefox的/ IE9 +。你會注意到,在IE8中,儘管事實上它只是#outer
即overflow:hidden
,但內部藍色div在最外面的#slicer
div的邊緣被切掉。如果我將#outer上的min-height
更改爲明確的height
,問題就會消失。
這個例子看起來很有意思,但僅僅是因爲我已經簡化了它。我在一個真實的項目中遇到了這個問題,這讓我很頭疼,因爲我改變佈局原則的範圍有限 - 其他依賴關係太多。我在這裏尋找兩件事:
這是一個已知的錯誤嗎?這個問題最簡單的說法是什麼?我仍然不覺得我真的明白導致IE8出錯的基本錯誤;它仍然不是一個特別簡單的測試案例。
是否有解決方法,不涉及更改
#outer
和#slicer
的樣式?在我的真實世界的例子中,這些是更大的頁面框架的一部分,我將遇到麻煩更改,而#inner
位更容易在我的控制之下。
(更新)最初的例子是非常人爲設法儘量減少。我在這裏創建了一個新的JSFiddle:http://jsfiddle.net/symposion/NDa6U/,它可以讓您更好地瞭解現實世界的問題。如果您在IE8中調整html窗格的大小,您將注意到最終綠色內容部分開始被錯誤切斷。我期待的是這部分保持它所包含div的高度的100%,理想情況下不需要對#innerContainer
以外的其他任何重大更改。但說實話,我會對任何保留基本佈局原則(底部從定義的像素位置擴展到離頁面底部定義的距離但具有最小高度)的解決方案感興趣在IE8中。
測試用例很有用,但很難知道我可以如何安全地改變這種人爲的測試用例。例如,是否有一個原因:'#inner'必須正好具有'height:120%'?爲什麼不只是'身高:500%'? – thirtydot
@thirtydot是的,我很抱歉,我正在努力簡化錯誤表現出來的場景,但卻造成了一個相當模糊的測試用例。我願意接受任何關於#inner的建議,但理想情況下,面對特定維度的變化,它會隱約可靠。我將嘗試構建一個更加複雜的示例,以更準確地表示真實世界的約束條件,並且我將把那個舊的留給那些有興趣闡明底層瀏覽器錯誤的人。 – hollandlef
@thirtydot如果您仍然感興趣,請嘗試新示例。這是一個更現實的,應該給你更多的感覺,我想要實現的。 – hollandlef