利用定位解决一个HTML页面奇怪的布局兼容性问题

前两天碰到个问题,一个页面中有个<div>,指定了固定的高宽尺寸值,同时通过overflow样式指定内容过多时自动出现滚动条。为了准确定位,此<div>被至于多个表格嵌套的单元格中。页面显示的时候出现了一些奇怪的bug:

测试使用过IE6、IE7、傲游等。根据在不同浏览器中的测试,此bug在有些浏览器中时隐时现,在有些浏览器中一直存在

正常现象:

单元格尺寸正常,<div>尺寸、位置正常,根据其内容的多少会相应出现滚动条。

bug现象:

当<div>中内容进一步增多时,<div>自身尺寸未发生变化,但包含上述<div>的单元格<td>实际尺寸被无故撑大,单元格实际高度比指定值要大,页面布局被打乱。

 

经测试修改多处样式没有改善,加上DOCTYPE声明也不行,怀疑可能是IE浏览器的bug。

后来想到一个办法:

给<div>加上样式“position: absolute;”,让其使用绝对定位;同时给它的上级元素<td>加上样式“position: relative;”,以作为<div>的绝对定位参照物;各元素坐标及尺寸均不变。问题解决!

 

后来想到,这个问题怪异的很,而且在有的浏览器中不会出现问题,会不会是因为页面上表格嵌套太多的原因?或是有其它未发现的代码笔误?由于其它原因,没必要推翻整个页面重做了,所以不管那么多了,此处仅讨论此问题的一种解决方案而已。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值