>웹 프론트엔드 >HTML 튜토리얼 >IE6、IE7下的z-index问题_html/css_WEB-ITnose

IE6、IE7下的z-index问题_html/css_WEB-ITnose

WBOY
WBOY원래의
2016-06-21 09:43:55991검색

IE6 IE7 z-index 浏览器兼容

有html结构如下:
<div class="wrap">		<div class="fl-wrap">			left		</div>		<div class="fr-wrap">			<ul>				<li>					<div class="fl">						<div class="pmt-wrap">							<a class="pmt">								鼠标经过时,显示div							</a>							<div class="pmt-detail">								...							</div>						</div>					</div>					<div class="fr">						right					</div>					<div class="clear"></div>				</li>				<li>					<div class="fl">						<div class="pmt-wrap">							<a class="pmt">								鼠标经过时,显示div							</a>							<div class="pmt-detail hidden">								...							</div>						</div>					</div>					<div class="fr">						right					</div>					<div class="clear"></div>				</li>			</ul>		</div>		<div class="clear"></div>	</div>


相关的css:
	.wrap{		border:1px solid red;		height:300px;		padding:10px;		width:500px;	}	.fl-wrap{		border:1px solid green;		float:left;		height:100px;		width:50px;	}	.fr-wrap{		border:1px dashed blue;		float:right;		height:300px;		width:440px;	}	ul{		margin:0;		padding:0;	}	.fr-wrap li{		border:1px solid #000;		height:100px;		list-style-type:none;		margin:5px;		padding:5px;			}	.clear{		clear:both;		height:0;		overflow:hidden;	}	.fr-wrap .fl{		border:1px dashed red;		float:left;		height:100%;		width:140px;	}	.fr-wrap .fr{		border:1px dashed blue;		float:right;		height:100%;		width:260px;	}	.fl .pmt-wrap{		position:relative;		*z-index:2;	}	.fl .pmt{		cursor:pointer;		font-size:12px;		margin:5px;		padding:0;		position:relative;		z-index:1;	}	.fl .pmt-detail{		background-color:#fff;		border:1px solid #ccc;		height:200px;		left:5px;		position:absolute;		top:16px;		width:100px;		z-index:3;	}	.hidden{		display:none;	}


火狐下的效果:(也是希望得到的效果)


IE6、IE7下的效果:


已经有按照网络上查到的方法,给.pmt-wrap加上了z-index,但是好像不起作用

回复讨论(解决方案)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>上传图片</title><style type="text/css">	.wrap{		border:1px solid red;		height:300px;		padding:10px;		width:500px;	}	.fl-wrap{		border:1px solid green;		float:left;		height:100px;		width:50px;	}	.fr-wrap{		border:1px dashed blue;		float:right;		height:300px;		width:440px;	}	ul{		margin:0;		padding:0;	}	.fr-wrap li{		border:1px solid #000;		height:100px;		list-style-type:none;		margin:5px;		padding:5px;			}	.clear{		clear:both;		height:0;		overflow:hidden;	}	.fr-wrap .fl{		border:1px dashed red;		float:left;		height:100%;		width:140px;	}	.fr-wrap .fr{		border:1px dashed blue;		float:right;		height:100%;		width:260px;	}	.fl .pmt-wrap{		position:relative;	}	.fl .pmt{		cursor:pointer;		font-size:12px;		margin:5px;		padding:0;	}	.fl .pmt-detail{		background-color:#fff;		border:1px solid #ccc;		height:200px;		left:5px;		position:absolute;		top:16px;		width:100px;		z-index:3;		display:none;	}	.hidden{		display:none;	}</style><script type="text/javascript">//原生JS写法,,代码比较多,,如果引用JQ库,那就简单多了window.onload=function(){	var oParent = document.getElementById('frWrap');	var oPmt = getByClassName(oParent,'pmt');	//alert(oPmt.length);	var pmtDetail = getByClassName(oParent,'pmt-detail');	for(var i= 0; i<oPmt.length; i++){		oPmt[i].index = i;		oPmt[i].onmouseover=function(){			//alert(0);			//alert(this.index);			pmtDetail[this.index].style.display='block';			this.parentNode.style.zIndex='1';  //关键。。给当前父层添加 z-index		}		oPmt[i].onmouseout=function(){			this.parentNode.style.zIndex='';			pmtDetail[this.index].style.display='none';		}	}	}// 通过class获取元素function getByClassName(oParent,sClass){	var arrReslut = [];	var oEle = oParent.getElementsByTagName('*');	for(var i = 0; i<oEle.length; i++){		if(oEle[i].className==sClass){			arrReslut.push(oEle[i]);		}	}	return arrReslut;}</script></head><body><h2>IE6下,需要给父层添加z-index才行,但如果在css加,因为是class,所以后面的也一起添加了。因此需要用JS动态添加到当前的父级,反正你也要实现显示隐藏效果,刚好可以这样实现</h2><div class="wrap">		<div class="fl-wrap">			left		</div>		<div class="fr-wrap" id="frWrap">			<ul>				<li>					<div class="fl">						<div class="pmt-wrap">							<a class="pmt">								鼠标经过时,显示div							</a>							<div class="pmt-detail">								...							</div>						</div>					</div>					<div class="fr">						right					</div>					<div class="clear"></div>				</li>				<li>					<div class="fl">						<div class="pmt-wrap">							<a class="pmt">								鼠标经过时,显示div							</a>							<div class="pmt-detail">								...							</div>						</div>					</div>					<div class="fr">						right					</div>					<div class="clear"></div>				</li>			</ul>		</div>		<div class="clear"></div>	</div></body></html>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.