在前端开发中,经常会用到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进行重设。

另:IE6 BUG大全: http://www.css88.com/archives/579

===========================以下内容2010年3月30日更新=============================

今天收到robertsky123的留言(见留言区):

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

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

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

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

1 <div style="position:relative; padding:20px; border:2px solid #F00;">
2  
3 <div style="position:absolute; top:0; left:0; border:1px solid #690;">test box</div>
4  
5 </div>

显示如图:

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

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

1 <div style="position:relative; padding:20px; border:2px solid #F00;height:20px">
2 <div style="position:absolute; top:0; left:0; border:1px solid #690;">test box</div>
3 </div>
如图:
注:这里如果加宽度和zoom:1,padding-top:20px和padding-bottom:20px的效果就没了,如图:
如果在实际项目中定死高度的,那么加个高度是很好的选择,但是杯具的是往往很多时候这个高度是自动撑的,那么我还是觉得用hack方式比较好!比如:
1 <div style="position:relative; padding:20px 20px; border:2px solid #F00;">
2 <div style="position:absolute; top:0;_top:2px; left:0;_left:-20px; border:1px solid #690;">test box</div>
3 </div>

转载请注明转自《【IE6的疯狂之十】父级使用padding后子元素绝对定位的BUG(2010年3月30日更新)》

【IE6的疯狂之十】父级使用padding后子元素绝对定位的BUG的更多相关文章

  1. 【IE6的疯狂之十二】一个display:none引起的3像素的BUG

    今天同事给我看了一个display:none引起的3像素的BUG,非常奇怪!从来没碰到过display:none还能引起这种bug. 看代码:   <div style="width: ...

  2. 【IE6的疯狂之九】li在IE中底部空行的BUG

    曾经写过[IE6的疯狂之六]li在IE中底部3像素的BUG(增加浮动解决问题),原文地址:http://www.css88.com/archives/421: IE6 BUG大全: http://ww ...

  3. 【IE6的疯狂之六】li在IE中底部3像素的BUG(增加浮动解决问题)

    今天开发项目中碰到一个li在IE中的BUG,先来看设计原型(如图:) 两个红色中间是<li>1px的底边框: 我写的代码如下: ============================== ...

  4. 【IE6的疯狂之七】样式中文注释后引发失效

    这是IE6 出现的奇怪现象.这是由于css 和html 的编码不同所引致. 满足下面条件就会引起 注释下面的样式不起作用:1. css有中文注释2. css为ANSI编码3. html为utf-8编码 ...

  5. html5shiv主要解决IE6-8 无法识别HTML5的新标签,父节点不能包裹子元素,以及应用CSS样式

    html5shivehtml5shiv主要IE6-8解决:1,HTML5提出的新的元素不被IE6-8识别.2,这些新元素不能作为父节点包裹子元素,3,并且不能应用CSS样式.让CSS 样式应用在未知元 ...

  6. IE6滤镜在实战测试中能让父层里面的子元素产生阴影

    1.写法一: <div class="cornerbg">    <p class="title-file">------</p& ...

  7. angular 中父元素ng-repeat后子元素ng-click失效

    在angular中使用ng-repeat后ng-click失效,今天在这个上面踩坑了.特此记录一下. 因为ng-repeat创造了新的SCOPE.如果要使用这个scope的话就必须使用$parent来 ...

  8. 关于vue项目去除margin和padding后设置元素width和height为100%后,出现滚动条问题(移动端)

    bug点,这个页面设置100%(100vw和100vh).页面出现抖动. 经过一番检察,原因出现在,vue项目自动添加的一个div上.就是body里的最后一个.如果选中这个元素,右键删除它.页面就不会 ...

  9. css之子元素获取(未定义高度)父元素的高度

    你可能碰到过这样的需求,一个高度不固定的区域(内容由用户创造),当鼠标经过该区域或者其神马操作时,需要出现一个与该区域一样大的模版: 我们用一个span来处理这个mask.由于 .sample-1 和 ...

随机推荐

  1. iOS基础 - UIScrollView

    一.UIScrollView使用引导思路. 1.之前我们所学的显示图片是用UIImageView 2.将UIImageView添加到根视图中,不显示的原因:没有设置位置 3.当图片比屏幕大时,直接放在 ...

  2. Coding Dojo

    Coding Dojo 发表于 2012-10-25 什么是Coding Dojo? Coding Dojo是一个学习的过程.一些程序员(通常是15-20人)在一起编程解决一个程序问题.一边编程,一边 ...

  3. 在一个view类里面获取viewcontroller

    - (UIViewController *)viewController {     for (UIView* next = [selfsuperview]; next; next = next.su ...

  4. discuz 门户功能增加自定义keywords字段

    discuz的门户的“发布文章”功能中,没有自动添加keywords字段,结果在文章页面中的meta的keywords中只显示标题,这样对于seo及其不利,今天整理了添加keywords字段方法. 一 ...

  5. [转]Even when one byte matters

    Source:http://kernelbof.blogspot.jp/2009/07/even-when-one-byte-matters.html Common Vulnerabilities a ...

  6. Linux网络编程(二)

    Linux网络编程(二) 使用多进程实现服务器并发访问. 采用多进程的方式实现服务器的并发访问的经典范例. 程序实现功能: 1.客户端从标准输入读入一行文字,发送到服务器. 2.服务器接收到客户端发来 ...

  7. 关于C#中readonly

    关于C#中readonly的一点小研究 关于C#中readonly的一点小研究   可能园子里有不少文章已经说明了这个问题了,但是我在这里写这篇博客只是写写自己的一些体会,也权当是整理归纳,高手莫见笑 ...

  8. ios学习之常见问题记录

    使用Core Data的好处和缺点? 首先这是apple官方极力推荐的,使用它而不是SQLite.好处有大概这么几点:1.减少你model层的代码量,减少50%-70%.无需测试和优化.2.提供了内存 ...

  9. StreamWriter(ms, new UTF8Encoding(false))可以达到不输出BOM的需求。

    winform 通过webservice向服务器提交图片需要注意的地方 最近一个winform项目中需要通过拍照或者上传本地文件或者截图的方式把产品图片上传到服务器,最后选择了服务器部署webserv ...

  10. IceMx.Mvc 我的js MVC 框架 三、动手来写一个评论模块儿

    介绍 本人菜鸟,一些自己的浅薄见解,望各位大神指正. 本框架有以下优点 1.简单(调用简单.实现简单.不过度设计) 2.视图.控制器.模型分离(分离对于维护十分有必要) 3.组件化(每一个mvc模块儿 ...