lixinlixin2008 发表于 2013-2-7 16:06:26

ie里两个div重叠时的事件穿透

一般的开发者都知道ie6,7,8中如果两个div有层叠关系,上层的div背景透明,且没有内容,那么下层div在某些情况下就可以响应点击在上层的事件,也就是说,上层的div被穿透了.
   
    一般来说,下层div可以响应点击的区域如下:
    1,如果下层div有边框的话,边框可以响应点击
    2,背景图和背景色都不能响应点击
    3,内容可以响应点击,比如文本,图片等


    另外:再有一种情况,如果外层div有click事件,点击上层div,这时有以下几种情况:
    1,如果点击的下层div没有背景,这时候click事件不会响应
    2,如果点击的下层div有背景,则上层div会响应click事件
    3,如果点击在下层div的border上或者内容上,则上层div不响应click事件,下层div的click被触发

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><style>*{    margin: 0px;    padding: 0px;}#Div0 {    top:0px ;    left: 0px;    width: 800px;    height:600px;    border: 3px solid red;    position : absolute;    z-index : 20;}#Div1 {    width: 500px;    height:300px;    border: 3px solid blue;    position : absolute;    top:0px ;    left: 0px;    z-index : 0;    background-color: yellow;}#Div4{    width: 200px;    height:300px;    background-color: green;    background-image: url(a.png)}</style></head><body>   一般的开发者都知道ie6,7,8中如果两个div有层叠关系,上层的div背景透明,且没有内容,那么下层div在某些情况下就可以响应点击在上层的事件,也就是说,上层的div被穿透了.      一般来说,下层div可以响应点击的区域如下:    1,如果下层div有边框的话,边框可以响应点击    2,背景图和背景色都不能响应点击    3,内容可以响应点击,比如文本,图片等    另外:再有一种情况,如果外层div有click事件,点击上层div,这时有以下几种情况:    1,如果点击的下层div没有背景,这时候click事件不会响应    2,如果点击的下层div有背景,则上层div会响应click事件    3,如果点击在下层div的border上或者内容上,则上层div不响应click事件,下层div的click被触发    <div id="Div1" >      <!--<img src=mask.gif style="width:100%;height:100%;position:absolute" />-->      <div id="Div4"></div>    </div><div id="Div0" ></div></body></html>

by: 天堂左我往右
页: [1]
查看完整版本: ie里两个div重叠时的事件穿透