ie7下z-index失效问题解决方法(详细分析)

绝对定位元素的“有定位属性(relative或absolute)的父元素”在渲染层次时起到了主要作用,前面的被后面的覆盖了。解决办法就是给有定位属性的父元素设置z-index

解决办法:

父级元素加上position:relative;并设置z-index属性。父级元素的z-index优先,其中包含的元素的z-index是相对于父级元素的index。

<div style="position:relative;z-index:2;">
	<p style="position:absolute;z-index:99;"> ...(要在上层显示的内容)</p>
<div>
<div style="position:relative;z-index:1;">
	...
<div>

上面的例子中,倘若将第一个div的z-index设置为-1,则无论p的z-index为多少,多会被下面的div遮住。 相反,倘若下层div的z-index也设置成2,ie7正在解释时,会按照"position:relative"的层的顺序,自动叠加,即实际值是3。没有加position属性时,所有值继承自父级。

在ie7下,如下代码会出现z-index覆盖混乱的问题:

<div style="position:relative;">
	<div style="position:absolute;z-index:100;width:100px;height:100px;background:red;">
		……
	</div>
</div>
<div style="position:relative;">
	<div style="position:absolute;z-index:10;width:20px;height:20px;background:black;">
		……
	</div>
</div>

ie7下显示为:

黑色到了红色的上面。

这是因为绝对定位元素的“有定位属性(relative或absolute)的父元素”在渲染层次时起到了主要作用,前面的被后面的覆盖了。

解决办法就是给有定位属性的父元素设置z-index:

<div style="position:relative;z-index:10;">
	<div style="position:absolute;z-index:100;width:100px;height:100px;background:red;">
		……
	</div>
</div>
<div style="position:relative;z-index:-5;">
	<div style="position:absolute;z-index:10;width:20px;height:20px;background:black;">
		……
	</div>
</div>

这样就可以正常显示了:

时间: 2024-10-25 13:37:51

ie7下z-index失效问题解决方法(详细分析)的相关文章

inline-block和text-indent在IE6,IE7下同时使用的兼容问题解决方法

在实际应用中,考虑到seo,很多button,icon都要用到inline-block和text-indent来处理,例如: <a href="#">Button</a> 当我们把css写成这样 .btn{display:inline-block; width:100px; height:23px; text-indent:-9999px;background-image:url(img.jpg);} 在标准浏览器下是没问题的,但是在IE6和7下会触发A标签消失

ie7下z-index失效问题解决方法

绝对定位元素的“有定位属性(relative或absolute)的父元素”在渲染层次时起到了主要作用,前面的被后面的覆盖了.解决办法就是给有定位属性的父元素设置z-index 解决办法: 父级元素加上position:relative;并设置z-index. 父级元素的z-index优先,其中包含的元素的z-index是相对于父级元素的index. <div style="position:relative;z-index=2"> <p style="pos

Linux下安装 TestLink常见问题解决方法

Read/write permissions For security reason we suggest that directories tagged with [S] on following messages, will be made UNREACHEABLE from browser Checking if C:\xampp\htdocs\testlink-1.9.5\gui\templates_c directory exists OK Checking if C:\xampp\h

FCKEditor在IE10下的不兼容问题解决方法

环境介绍:FCKEditor 版本 2.x.x 问题:IE10 下FCKEditor不兼容,显示不出来 关键词:不同于其他方法之处是第一个关键点,其他网友的正则表达式不对 解放方法:(可以直接<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />解决,也可以如下) 1.在 fckeditor/fckeditor.js 文件 > 方法: FCKeditor_IsCompatibleB

PHP basename 函数 linux下中文路径的问题解决方法

关于php basename()函数的基本使用方法,大家可以查看这篇文章<php basename()解析路径并获取文件名称> 有两种方法可以解决basename()函数无法获取带中文字符的文件名 用setlocale()函数设置区域方法 preg_replace()正则表达式方法 下面具体了解每种方法如何实现basename()支持中文 第一种方法:setlocale()函数设置区域 basename()函数依赖于区域,所以我们需要使用setlocale()为其设置区域 <?php s

JSP环境下的Ajax乱码问题解决方法

AJAX传递中文字符串时必须把中文字符串编码成unicode,一般会用到JS的自带函数escape().不过找到了更好的函数来确决中文字符转换成unicode编码的函数 function uniencode(text)   {       text = escape(text.toString()).replace(/\+/g, "%2B");       var matches = text.match(/(%([0-9A-F]{2}))/gi);       if (matches

ASP.NET在IE9,IE10,IE11中Form表单身份验证失效问题解决方法

已经研究出解决方案. IE9:在web.config中的forms中增加name=".xCookie"属性即可. IE10或IE11: 在web.config中的forms中增加cookieless="UseCookies"属性即可. 这个是IE9,IE10,和IE11浏览器的bug问题,相信很多用FormsAuthenticationTicket来做验证的都会碰到这个问题..... 我自己的最后的是 <authentication mode="Fo

dede织梦data目录正确迁移及引起的问题解决方法

关于将dede织梦data目录迁移出web目录织梦官方提供了一个教程,但是如果你是按照他们提供的教程做的话会出现很多问题.比如验证码问题, 图片显示问题等等一大堆.织梦官方这种是很不负责任的,因为那个教程有很大缺陷.这里跟大家提供一个完整版本的如何将dede织梦data目录正确迁移, 以及按照官方版本教程迁移出现问题的解决办法.这里先看看官方的吧,然后我再补充. 1.将data目录转移到非Web目录 我们这里举例“D:\dedecms\v57”为我们系统的根目录,我们需要将目录下的data文件夹

IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总

http://www.jb51.net/css/85640.html 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1:li边距“无故”增加  任何事情都是有原因的,li边距也不例外.  先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的paddi