今天发现在ie下有几个css兼容性问题,这里和大家分享下:
1、除了edge外其他ie版本浏览当a标签href='javascript:void(0);'时会触发window.onbeforeunload事件,如果页面有定义改事件的处理函数则会执行。onclick、onbeforeunload跟href三者之间的先后运行关系是这样的:onclick > onbeforeunload > href。那如何避免 呢?
解决方案一:
通过href='#'来替换href=‘javascript:void(0);’。但又会出现一个问题:chrome下当a的href属性设置‘#’时,点击时页面位置会跳到顶部。
解决方案二:
既然a元素相关事件执行顺序为onclick > onbeforeunload > href,那我们可以在onclick事件中写一句return false,onbeforeunload事件就不会执行了。
如:
//js
$(function(){
window.οnbefοreunlοad=function(){
return '你确定要关闭页面吗?'
};
$('#aa').click(function() {
//业务处理代码
return false;
})
})
function dealData(){
//业务处理代码
return false;
}
//html
<a id='aa' href='javascript:void(0);'>执行业务逻辑</a><span style="font-size:12px;"></span>
效果:当关闭页面时,会提示“是否离开页面?”的提示框。当点击aa时不会提示。
注意:直接在html中指定onlick='dealData();'是无效的,必须在jquery中才有效
2、ie7及以下版本当多个元素样式中同时设置了z-index值时,显示的层级关系并不只和z-index值大小有关,而且和元素所在html节点深浅有关,越浅即越接近根节点的元素显示层级越优秀,即使z-index值大但节点深的元素也会排在z-index值小但节点浅的元素后面。同级z-index值大的优先显示。