您现在的位置是:网站首页> 编程资料编程资料
ie下的css层叠z-index各种问题详细整理
2021-09-07
838人已围观
简介 可是真有些日子没有写DIV+CSS了,而且对IE6兼容性的坑碰到的还是不够多(以前做国外项目),所以这次开发中不可避免的碰见了几个问题,尤其是在IE下的 z-index 问题很有意思,所以整理了一些资料和总结分享给大家,希望可以帮助你们
到新地方有些日子了,差不多适应了这边的工作节奏与流程。接到的第一个开发任务是几个比较简单的页面,需要做的工作就是先把设计图变成页面,然后使用PHP创建几个请求的接口传递数据,标准且简洁的web开发思路。可是真有些日子没有写DIV+CSS了,而且对IE6兼容性的坑碰到的还是不够多(以前做国外项目),所以这次开发中不可避免的碰见了几个问题,尤其是在IE下的 z-index 问题很有意思,所以整理了一些资料和总结分享给大家...注:因为引入了jsfiddle,所以页面加载受影响会稍慢一些^_^
阅读目录:
- z-index : auto | numberz-index 属性设置元素的堆叠顺序,如果为正数,则离用户更近,为负数则表示离用户更远;拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面;z-index 仅能在定位元素上奏效(position 属性值为 relative 或 absolute 或 fixed的对象)。
当定位元素的 'z-index' 未设置时(默认为 auto),在 IE6 IE7 IE8(Q) 下将会创建一个新的局部层叠上下文。而在其它浏览器下,则严格按照规范,不产生新的局部层叠上下文。
这个问题将导致定位元素的层叠关系在不同浏览器出现很大的区别,严重的可导致页面布局混乱、内容覆盖等。
受影响的浏览器有IE6 IE7 IE8(Quriks Mode)
直接从w3help复制了代码,分析以下代码:

注:Q代表Quriks Mode,即混杂模式。
根据 W3C CSS2.1 规范中的说明,定位元素【p1】和【p3】由于未设置 'z-index' 特性(使用默认值 auto),它们不会创建新的局部层叠上下文,而定位元素【p2】设置了 z-index:1 则会创建新的层叠上下文。
另,在同一根层叠上下文中,同为 z-index:auto 的定位元素【p1】和【p3】,它们的层叠级别相同,但【p3】在【p1】之后,所以在 Z 轴上【p3】比【p1】靠前显示,又,【p2】层叠上下文的层叠级别为正数,所以【p2】的层叠级别要比【p3】高。因此,它们在 Z 轴上的顺序为:(遵循 back-to-font)【p1】 -> 【p3】 -> 【p2】
以上为标准浏览器下的情况。
而在 IE6 IE7 E8(Q) 下,定位元素【p1】和【p3】都创建了新的局部层叠上下文,在同一根层叠上下文中,它们的层叠级别相同,但【p3】在【p1】之后,所以在 Z 轴上【p3】比【p1】靠前显示。此时,由于【p2】处于【p1】的层叠上下文中,所以【p2】在 Z 轴上要比【p3】靠后。
在来一个例子:

解决办法
理解层叠上下文、层叠级别与 'z-index' 之间的关系。在可能出现定位元素相互覆盖的情况时,明确指定定位元素的 'z-index' 特性,避免此问题的出现。
注:此段内容基本都是来自w3help。
我不是一个喜欢抱怨的人,so...有关抱怨IE6的话在此省略500字...
先上个图说说我在工作中实际遇到的问题:
图片的上半部分就是在非IE6下的交互,图片下半部分是在IE6下的显示效果,当打开虚拟机测试的时候我表示瞬间碉堡了,
相关内容
- css3强大的动画效果animate使用说明及浏览器兼容介绍Animate.css拥有多款文字特效的css3动画库效果源码基于css3 animate制作绚丽的动画效果
- css 背景透明 元素(标签)背景透明的css设计详解XML中的标签与元素的使用div标签中的元素margin-top失效的解决方法HTML5在a标签内放置块级元素示例代码HTML标签及基本元素学习总结HTML中的标签和元素的区别详解标签 li 是不是块级元素分析HTML元素(标签)大全及使用介绍HTML 元素 标签教程元素绝对定位以后设置了高宽,a标签不能点击的原因及解决方法
- 8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
- div背景定位background设置元素的背景参数用滤镜实现背景图片的拉伸效果代码css 如何让背景图片拉伸填充避免重复显示CSS背景图拉伸效果兼容FF/Chrome/IE等主流浏览器(亲测)table自动拉伸在chrome与IE中的兼容性问题解决按钮在IE中两边被拉伸的 BUGCSS background属性(背景属性)详解对背景图定位中background-position属性的自我理解css3实现背景图片拉伸效果像桌面壁纸一样
- css中伪类:after的用法(三种方式)css a标签的visied伪类失效原因介绍a标签的四个css伪类(link、visited、hover、active)样式理解css伪类伪元素域高级选择器的介绍应用before/after伪类时如何CSS命名以及针对ie6/ie7浏览器兼容ie6不支持hover ie6 标签(除a标签)不支持伪类:hover解决方案CSS中a标签样式的“爱恨”原则:定义链接样式的四个伪类有关于a标签的4个伪类的使用方法a标签伪类的作用及书写顺序是什么
- 用css3制作纸张效果(外翻卷角)
- CSS3 制作绽放的莲花采用效果叠加实现jQuery/CSS3实现的可折叠侧边栏菜单特效源码椭圆形CSS3下载提示动画按钮效果代码CSS3制作了一个动画导航效果(鼠标悬浮会放大)css3 loading css3技术实现5款不同风格的网页loading加载动画案例css3气泡 css3关键帧动画创建的动态通知气泡如何使用html5与css3完成google涂鸦动画CSS3 实现侧边栏展开收起动画
- CSS3 制作旋转的大风车(充满童年回忆)css3实现的旋转风车动画特效源码一款很酷的HTML5+CSS3大风车旋转动画CSS3仿对啊网蓝色圆形大风车旋转特效源码
- css3简单练习实现遨游浏览器logo的绘制css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
- IE滤镜与CSS3效果(详细整理分享)css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果