2013-01-02 26 views
3

標題說明了一切:一個按鈕元素的絕對定位的孩子是錯誤的IE8
這裏有一個fiddle
而這裏的強制性一段代碼:IE8絕對定位的元素都是錯誤

<button><div></div></button> 
<style> 
button{ 
    position: relative; 
    width: 200px; 
    height: 200px; 
    border: 0; 
    background: gray; 
} 
button div{ 
    position: absolute; 
    top: 5px; 
    left: 0px; 
    width: 100px; 
    height: 100px; 
    background: red; 
}​ 
</style> 

我搜索並嘗試了所有我能想到的。也許我應該放棄使用按鈕元素: -/

這是怎麼回事?

+5

可能重複的[IE8和IE9:前和:後元件絕對位置被隱藏(http://stackoverflow.com/questions/11164634/ie8-and-ie9-before-and-after-elements - 位,絕對是隱藏的)。 TL; DR,在按鈕元素上使用'overflow:visible;':http://jsfiddle.net/paFKM/2/ –

+1

向按鈕添加'overflow:visible'確實可以解決這個問題! – Sprintstar

+0

'也許我應該放棄使用按鈕元素'。你不應該放棄使用它,但你不應該在按鈕(=內聯元素)中放置一個div(= block元素)。這是要求麻煩,並且使代碼無效。 –

回答

2

您需要添加一個溢出:按鈕css可見。

這裏是一個小提琴https://jsfiddle.net/innerurge1/os2e9c2j/7/。你也應該用跨度替換div,因爲這更具語義。 Div並非在按鈕中「允許」,因爲它們是塊元素,並且按鈕是內聯的。

.parent{ 
    position: relative; 
    width: 200px; 
    height: 200px; 
    border: 0; 
    background: gray; 
    text-align : left; 
    overflow:visible; 
}