关于定位和z-index的一些小经历
今天在工作过程中,遇到这么一个奇葩问题,搞了好一阵子才找到原因,遂总结了一下...
先上DEMO:
<div style="width:800px; height:400px;">
<div style="width:380px; height:400px; float:left;">
<div id="a1" style=" position:relative; z-index:1;">
<div style="position:absolute;">
<div style="width:400px; height:200px; position:absolute; background:#F00; left:100px; top:50px;"></div>
</div>
</div>
</div>
<div style="width:380px; height:400px; float:right;">
<div id="a2" style=" position:relative; z-index:1;">
<div style="position:absolute;">
<div style="width:400px; height:200px; position:absolute; background:#0F0; left:-100px; top:100px;"></div>
</div>
</div>
</div>
</div>
<input type="button" value="click" onclick="document.getElementById('a1').style.zIndex=3" />
当你用IE7执行此段代码
( IE6暂未确认是否会出此问题,不过推断也会有这问题,毕竟这两浏览器就是一对奇葩... )
你会发现,不管怎么点按钮,红色层死活不肯跑到绿色层上面...
而在其他浏览器不会,唯独IE的奇葩兄弟会这样
但是...如果你用CSS直接定义一个z-index:3给a1,红框又能盖住绿框了...
并且用页面加载事件( 如jquery的$(document).ready(function(){...}) )来触发JS,修改a1的z-index也是可以实现红框盖住绿框...
也就是说,唯独像点击,鼠标经过这样的时间所触发执行的JS是无效果的...
此时此刻...无比郁闷了吧...
解决方法是:
将a1和a2的父级元素都设为相对定位( position:relative )
然后修改按钮onclick事件触发的JS,让其功能变为如下...
修改a1父级元素的z-index,使a1的父级元素的z-index值大于a2的父级元素的z-index值
这样就正常了
总结:
IE6 和 IE7 下,两个相对定位元素,如果他们的上一级父级元素( 注意,是最亲的一级 )不是同一元素。
其z-index值通过页面加载事件以外的其他事件来执行JS进行修改,均无效果。
而直接定义CSS,或通过ready事件来执行JS进行修改,则有效果。
关于定位和z-index的一些小经历的更多相关文章
- 细说一下position(定位),以及其他的小知识
细说:position 位置 1.只要使用定位,必须要有一个相对的参照物.relative 2.具体定位的那个1元素需要加position:absolute:绝对的 绝对的:就是具体到某一个 ...
- 快捷定位目录 z武器
z的源码在这里:https://github.com/rupa/z/blob/master/z.sh 1.把源码复制到你的用户目录下的z.sh文件, 2.然后用vim打开.bashrc这个目录,在最后 ...
- Linux服务器定位CPU高占用率代码位置经历
http://blog.csdn.net/zhu19774279/article/details/51303000
- 关于ThinkPHP5.1+的Log无法记录SQL调试记录的小经历
项目开发阶段,除了基本编码外,性能也需要实时关注与优化.之前我的大部分项目都是使用ThinkPHP5.0以及ThinkPHP3.2,对于框架提供的日志记录和日志配置都差不多,然后使用ThinkPHP5 ...
- 前端2 — CSS — 更新完毕
1.CSS是什么? 指:Cascading Style Sheet --- 层叠样式表 CSS 即:美化网页( 在HTML不是说过W3C规定网页为三种标准嘛,结构层HTML已经玩了,而这个CSS就是 ...
- 二分图【洛谷P2175】 小Z的游戏分队
P2175 小Z的游戏分队 小Z受不了寂寞,准备举办一次DOTA比赛,为了能让ACM班全部都参加比赛,他还特制了一张DOTA地图能够支持任意多人打任意多人. 现在问题来了,怎么把这么多人分成两队?小Z ...
- 微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js)
微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞 ...
- P5676 [GZOI2017]小z玩游戏【Tarjan】
小z玩游戏 Tarjan算是板子题吧,但是要稍微做一些修改,建边需要多考虑,建立"虚点". 题目描述 小 z 很无聊. 小 z 要玩游戏. 小 z 有\(N\)个新游戏,第\(i\ ...
- css显示display、可见性visibility、定位position、对齐
隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden",但是这两种方法会产生不同的结果. display ...
随机推荐
- [LeetCode 题解]:Candy
There are N children standing in a line. Each child is assigned a rating value. You are giving candi ...
- Linq to SQL 中将数字转换为字符串
使用LINQ to Entities中的SqlFunctions调用数据库中的函数 添加引用System.Data.Entity 引用命名空间 using System.Data.Objects.Sq ...
- Web Server 在IIS上部署ASP.NET Core项目
在IIS上部署ASP.NET Core项目 一.配置应用程序池为无托管: 二.安装ASPNETCoreModule:(核心) 下载地址:https://go.microsoft.com/fwlink/ ...
- nowcoder(牛客网)提高组模拟赛第一场 解题报告
T1 中位数(二分) 这个题是一个二分(听说是上周atcoder beginner contest的D题???) 我们可以开一个数组b存a,sort然后二分b进行check(从后往前直接遍历check ...
- ie7间隙问题
正常浏览器显示,如谷歌浏览器: ie7浏览器效果如图: html代码: <ul> <li class="current"><a href=" ...
- “全栈2019”Java第五十一章:继承与final关键字详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- cookie的优缺点
优点 :极高的扩展性和可用性 1.通过良好的编程,控制保存在cookie中的session对象的大小. 2.通过加密和安全传输技术(ssl),减少cookie被破解的可能性 3.只有cookie中存 ...
- 【spring】Spring Boot:定制自己的starter
概念 在学习Spring Boot的过程中,接触最多的就是starter.可以认为starter是一种服务——使得使用某个功能的开发者不需要关注各种依赖库的处理,不需要具体的配置信息,由Spring ...
- js导出页面的表格到excel(NB的大神洗了好几个,挑一个记下来)
var idTmr; function getExplorer() { var explorer = window.navigator.userAgent ; //ie if (explorer.in ...
- Jsp页面跳转和js控制页面跳转的几种方法
Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servle ...