IE6絕對定位的bug及其解決辦法

IE6絕對定位的bug及其解決辦法

  IE6絕對定位的bug及其解決辦法。position:absolute定位在IE6下存在left和bottom的定位錯誤問題:


 Example Source Code


IE6下的left定位錯誤–>




<!–IE6下的left定位錯誤–>


  上面這段代碼在IE6中定位錯誤。


  解決辦法有兩種:


  1、給父層設置zoom:1觸發layout。 


  2、給父層設置寬度(width)。


 Example Source Code 


–解決方法1 zoom:1–>


–解決方法2 設置width–>


下面的這段代碼在IE6下,bottom定位錯誤:


 Example Source Code 


–IE6下的bottom定位錯誤–>

>


  解決辦法和left定位類似:


  方法1是給父層設置zoom觸發layout。


  方法2是給父層設置高度(height)。


 Example Source Code


–解決方法1 zoom:1–>


–解決方法2 設置height–>


IE6中很多Bug都可以通過觸發layout得到解決,以上的解決方法無論是設置zoom:1還是設置width和height其實都是爲了觸發layout。下列的CSS屬性或取值會讓一個元素獲得layout:        


  position:absolute 絕對定位元素的包含區塊(containing block)就會經常在這一方面出問題


  float:left|right 由於layout元素的特性,浮動模型會有很多怪異的表現


  display:inline-block 當一個內聯級別的元素需要layout的時候就往往符用到它,這也可能也是這個CSS屬性的唯一效果—-讓某個元素有layout


  width: 除auto外的任何值


  height: 除auto外的任何值


  zoom: 除auto外的任何值


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章