关于IE6父级元素设置padding后定位位置不一样解决方案

我了个擦呀,今天遇到一个问题很早以前我直接用hack来解决,今天我看了看究竟是怎么回事。 chrome

<div style="position:relative; padding:20px; border:2px solid #F00;">

<div style="position:absolute; top:0; left:0; border:1px solid #690;">test box</div> 浏览器

</div> firefox

父级元素设置position:relative;子元素设置position:absolute经过left,top,right等属性来对层进行定位,但ie6对left,top,right等属性的解释和ie7,ie8及firefox、chrome等不一致。实际上是由于父元素设置了padding,固然0是不算的。ie6中层的定位起始坐标是从padding后的位置算起,而其余则从层的真实位置算起,而非被padding改变后的那个位置。这点形成使用position:absolute进行层定位时ie6与其余浏览器的表现不同。 it

这个Bug也是常见的,目前好像只能经过hack来干掉他。_left:-20px.................... io

相关文章
相关标签/搜索