本文所分享的知识点是【IE6,IE7浏览器下 margin 无效的解决方法】,欢迎您喜欢我爱IT技术网所分享的教程、知识、经验或攻略,下面是详细的讲解。
IE6,IE7浏览器下 margin 无效的解决方法
只能设置父元素的padding-top;来达到效果。看下面的演示代码;
今天有时间,所以特意做了一个测试。
<style type="text/css">
.test-1,.test-2{border:5px solid #F00;}
.test-1{border-color:#000;}
.test-2{margin:10px;height:50px;width:500px;}
</style>
<div class="test-1">
<div class="test-2">
test-2
</div>
</div>


呵呵,我标题没错吧。果然IE6,IE7的margin:10px; 失效了。
解决办法
.test-1{border-color:#000;width:100%; height:auto !important;height:1%; zoom:1;}
使用:width:100%;或者 height:auto !important;height:1%; 或者zoom:1; 都可以解决上面的问题。(3选1,不要全部写进去。)
根据自己的具体情况来选择一种即可!
问题根源
当然知道了解决办法还不够,我们必须知道什么情况会引发上面的BUG,zoom:1;这东西貌似经常使用。于是我去查询了一下关于zoom的一些信息。
发现他会触发IE的 haslayout ; haslayout来解决一些常见的IE BUG;(建议不太明白 haslayout 的同学点击连接去读一下。haslayout 不神秘。)
在InternetExplorer中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元素来计算尺寸和组织内容
上面这句加粗的话很重要哦。
上面的例子 test-1 没有触发 haslayout 他不能负责对自己和可能的子孙元素进行尺寸计算和定位;所以子元素的margin失效。
当然 激活 haslayout 的方式很多 zoom:1; 其实设置 widht height 也可以激活。所以当设置了 这两个值。子元素定位也正确了。
以上仅个人根据网上的资料得到的结论,如果有错误,还请高人指点。
罪恶的IE 浏览器何时退出舞台。
关于IE6,IE7浏览器下 margin 无效的解决方法的相关讨论如下:
相关问题:求助margin 和 padding 浏览器兼容性问题
答:padding:65px 0;这里的问题,padding:65px 0; *padding:65px 0; _padding:65px 0;把*padding:65px 0; _padding:65px 0;这两个的值改一下 第一个带星号的是控制360的(IE7),后面是IE6的; >>详细
相关问题:我的CSS 在IE6下 margin 为什么是IE7的双倍
答:这个很正常:你可以了解一下浏览器的兼容性,就可以解决了,具体的,还需要自己体验你把所有的设置了*{margin:0px;padding:0px}这样看就容易设置了 >>详细
相关问题:IE7下div里内容右溢出,其他浏览器正常,怎么解决...
答:你是说哪里溢出了,可以截图吗?我刚把你代码在FF下看了下,有很多问题喔,不知道你说的是哪里? id为notBob的DIV,没给宽度,肯定是默认全屏显示了.如果仅令是IE7的话,可以用hack来写 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
