【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进行重设。
另: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> |


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的更多相关文章
- 【IE6的疯狂之十二】一个display:none引起的3像素的BUG
今天同事给我看了一个display:none引起的3像素的BUG,非常奇怪!从来没碰到过display:none还能引起这种bug. 看代码: <div style="width: ...
- 【IE6的疯狂之九】li在IE中底部空行的BUG
曾经写过[IE6的疯狂之六]li在IE中底部3像素的BUG(增加浮动解决问题),原文地址:http://www.css88.com/archives/421: IE6 BUG大全: http://ww ...
- 【IE6的疯狂之六】li在IE中底部3像素的BUG(增加浮动解决问题)
今天开发项目中碰到一个li在IE中的BUG,先来看设计原型(如图:) 两个红色中间是<li>1px的底边框: 我写的代码如下: ============================== ...
- 【IE6的疯狂之七】样式中文注释后引发失效
这是IE6 出现的奇怪现象.这是由于css 和html 的编码不同所引致. 满足下面条件就会引起 注释下面的样式不起作用:1. css有中文注释2. css为ANSI编码3. html为utf-8编码 ...
- html5shiv主要解决IE6-8 无法识别HTML5的新标签,父节点不能包裹子元素,以及应用CSS样式
html5shivehtml5shiv主要IE6-8解决:1,HTML5提出的新的元素不被IE6-8识别.2,这些新元素不能作为父节点包裹子元素,3,并且不能应用CSS样式.让CSS 样式应用在未知元 ...
- IE6滤镜在实战测试中能让父层里面的子元素产生阴影
1.写法一: <div class="cornerbg"> <p class="title-file">------</p& ...
- angular 中父元素ng-repeat后子元素ng-click失效
在angular中使用ng-repeat后ng-click失效,今天在这个上面踩坑了.特此记录一下. 因为ng-repeat创造了新的SCOPE.如果要使用这个scope的话就必须使用$parent来 ...
- 关于vue项目去除margin和padding后设置元素width和height为100%后,出现滚动条问题(移动端)
bug点,这个页面设置100%(100vw和100vh).页面出现抖动. 经过一番检察,原因出现在,vue项目自动添加的一个div上.就是body里的最后一个.如果选中这个元素,右键删除它.页面就不会 ...
- css之子元素获取(未定义高度)父元素的高度
你可能碰到过这样的需求,一个高度不固定的区域(内容由用户创造),当鼠标经过该区域或者其神马操作时,需要出现一个与该区域一样大的模版: 我们用一个span来处理这个mask.由于 .sample-1 和 ...
随机推荐
- mark_May
嗯神忙的五月总算是过完了. 草草的做完研究性学习,浑浑噩噩的考了数学联赛,以及在考试的上一周还在疯狂的看未闻花名,貌似还有前几个星期不懂是吃错药还是怎样 总急着把2013的题目刷完=-=可是貌似到现在 ...
- textarea定位光标
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- kindeditor使用方法
一.下载编辑器 下载KindEditor最新版本(本版本为4.1.10) 下载页面:http://kindeditor.net/down.php 二.部署编辑器 解压kindeditor-x.x.x. ...
- opencv中的vs框架中的Blob Tracking Tests的中文注释。
经过2天的努力终于算是大概弄清楚了opencv中的vs框架是大概是如何工作的了,下面贴一下我自己写的代码注释.非常详细.对初学者有帮助.尤其详细分析了RunBlobTrackingAuto()函数,在 ...
- GitHub创建SSH Keys
第一步:在用户主目录下,看有没有.ssh目录,如果有,再看看这个目录下 有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步,如果没有 打开Git Bash,创建SSH ...
- Erasure Coding in WAS简单译文
原文:<Erasure Coding in Windows Azure Storage.pdf>,地址:https://www.usenix.org/system/files/confer ...
- IS动态左侧菜单-01
<%@ Page Language="C#" CodeFile="Default3.aspx.cs" Inherits="Default3&qu ...
- 定时器Timer不定时
订餐系统之定时器Timer不定时 经过几天漫长的问题分析.处理.测试.验证,定时器Timer终于定时了,于是开始了这篇文章,希望对还在纠结于“定时器Timer不定时”的同学有所帮助,现在的方案,在系统 ...
- ASM上的备份集如何转移到文件系统中
刚看到一个有关asm备份集的迁移的问题.特地整理了一下 方法有两个. 方法一:使用rman,rman是一个非常好的工具,不仅仅是备份的作用,如果你只用rman作备份的话,有些浪费了. 通过rman里的 ...
- java Integer 源码学习
转载自http://www.hollischuang.com/archives/1058 Integer 类在对象中包装了一个基本类型 int 的值.Integer 类型的对象包含一个 int 类型的 ...