• IE6的使用padding后子元素绝对定位的BUG
  • 在前端开发中,经常会用到css的position:absolute来使层浮动,前通过left,top,right等属性来对层进行定位,但ie6对left,top,right等属性的解释和ie7,ie8及firefox、chrome等不一致。

    在父层使用position:relative;和padding(当然0值除外)后,ie6中层的定位起始坐标是从padding后的位置算起, 而其他则从层的真实位置算起,而非被padding改变后的那个位置。这点造成使用position:absolute进行层定位时ie6与其他浏览器的 表现不一样。

    目前解决办法,使用csshack,_left针对ie6进行重设。

    一些样例请测试好再传,会误导读者的,还有ie与其他主流浏览器的盒模式是一样的,不是ie定了width在加padding就不会改变宽度也是改变的, 网上有些东西很容易误导读者,请博主对读者负责啊!

    非常感谢robertsky123的留言和建议!由于robertsky123当头棒喝使我重新对该问题进行了测试。

    确实该问题还有其他的解决:不过这些方案很和实际项目有关,比如这个父级容器是否顶宽定高等其他原因。

    首先看问题的产生,HTML和CSS如下:

    view source

    print?

     

    1

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

    2

     

     

     

    3

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

    4

     

     

     

    5

    </div>

    “ie与其他主流浏览器的盒模式是一样的”我真不敢苟同,我始终觉得IE6的盒模式就是和其他主流浏览器盒模式存在差异,如果是一样的,那么试问这个例子IE6为什么会和其他浏览器不同呢?

    虽然相对定位的父级容器加宽度,高度,zoom:1都能使本来中定位的test box圆点和其他主流浏览器一致,例如:

    view source

    print?

     

    1

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

    2

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

     

     

    3

    </div>

     

    注:这里如果加宽度和zoom:1,padding-top:20px和padding-bottom:20px的效果就没了,

    如果在实际项目中定死高度的,那么加个高度是很好的选择,但是杯具的是往往很多时候这个高度是自动撑的,那么我还是觉得用hack方式比较好!比如:

    view source

    print?

     

    1

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

    2

    <divstyle="position:absolute; top:0;_top:2px; left:0;_left:-20px; border:1px solid #690;">test box</div>

     

     

    3

    </div>

添加时间:2011-01-29 点击次数:69

麦谷公益   |   律师声明   |   商务合作   |   联系我们   |   网站地图   |   网站百科

Copyright © 2003 - 2011 Meganet. All Rights Reserved 鲁ICP备09105359号

艾默生UPS电源 艾默生UPS官网 艾默生空调官网 艾默生空调 艾默生精密空调 精密空调网 山特UPS电源 艾默生UPS电源
癫痫病 北京癫痫医院 北京癫痫病医院 癫痫病能治愈吗 癫痫病可以治愈吗 癫痫病的早期症状 癫痫病的早期症状 癫痫病的最新治疗方法 癫痫病人不能吃什么 癫痫病是怎么引起的 北京肾病医院 肾病医院排名 肾病的早期症状 北京肾病医院哪家好 肾病医院 西安康杰癫痫病医院 癫痫病能治愈吗 癫痫病是怎么引起的 北京癫痫病医院 癫痫病的最新治疗方法