IE6下拼爹的问题也就是我在实际开发中碰到的问题,现在已经完美解决且达到需求的效果了。接下来要介绍的是一些我总结的资料,都是介绍在IE环境下得各种z-index的坑。
2.万恶的float
float 是 css 的定位属性,而且应该是CSS中最常用的属性之一了,至于为什么说它万恶等我改天去准备一篇文章单独进行解说,在这里借着以前的学习笔记简单说几点:
1. IE7 中,底边距 bug是当浮动父元素有浮动子元素时,这些子元素的底边距会被父元素忽略掉;
2. 3像素间距是指挨着浮动元素的文本会神奇的被踢出去3像素,好像浮动元素的周围有一个奇怪的力场一样;
3. 双倍边距bug处理 IE6 时,另一个需要记住的事情是,如果在和浮动方向相同的方向上设置外边距(margin),会引发双倍边距。
有关float的扫盲就先到这里,还有一点就是float毕竟是标准的属性,而且大多数的前端都习惯用它去实现页面,所以我的建议就是:深入理解 HTML语义和表现。
接着开始讲述 z-index和float 在IE6环境下擦出的坑爹的火花…先上一段代码:
复制代码
<div style=”background:#000;width:100%;height:600px;opacity:0.3; filter:alpha(opacity=30);position:absolute;left:0;top:0;z-index:1;overflow:hidden;”></div>
<div style=”position:relative;z-index:100;”>
<img src=”http://images.cnblogs.com/cnblogs_com/Darren_code/311197/o_1.jpg” style=”float:left;” width=”300″ />
</div>
看到<img>有设置float属性,上面这段代码显示的效果与IE6下拼爹失败一样,IE6下的犀牛书是灰色的 T.T 。为了让犀牛书正常显示,只需要把<img>的float属性去掉即可。
个人理解可能是因为<img>的float使得z-index失效造成的。网上还有种说法是因为float和relative两者在定位上问题,所以一起使用的时候会造成此bug。
这个问题又教育了我们 – 某些环境(IE6)下也要小心被兄弟坑…
IE6下 select z-index无效而遮挡div
这个问题其实在是比较常见的了,我早期做项目的时候有幸遇见过这个问题,所以有现成的资料,趁着这次也刚好整理整理、回忆回忆。两个解决办法都是围绕iframe展开的,咱们先来看第一个。
1.用 iframe 包裹 select 元素
使用iframe包住select,这样iframe可以有z-index,只要在div上设置的z-index比iframe的高即可实现。示例代码如下:
复制代码
<iframe style=”z-index:1;position: absolute; “>
<select name=”me”>
<option value=”name”>Darren聂微东</option>
<option value=”sex”>male</option>










