兼容性

html

1.针对IE浏览器比较好的解决方案是html5shiv。html5shiv主要解决HTML5提出的新的元素不被IE6-8识别
1.H5新标签在IE9以下的浏览器识别
<!–[if lt IE 9]>
<script type=“text/javascript” src=“js/html5shiv.js”>
<![endif]–>
html5shiv.js下载地址
https://github.com/aFarkas/html5shiv/releases
针对IE浏览器比较好的解决方案是html5shiv。html5shiv主要解决HTML5提出的新的元素不被IE6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式。让CSS 样式应用在未知元素上只需执行 document.createElement(elementName) 即可实现。html5shiv就是根据这个原理创建的。

css

1.滚动栏

浏览器获取 scrollTop高度 特点
谷歌document.body.scrollTop
safari比较特别,有自己获取scrollTop的函数 : window.pageYOffset ;
IE6/7/8没有doctype声明的页面里,可以使用 document.body.scrollTop 来 ;
有doctype声明的页面,则可以使用 document.documentElement.scrollTop ;
Firefox直接用 document.documentElement.scrollTop ;

事件绑定

方式有三:

事件绑定兼容性

  • 兼容写法:
    if(window.addEventListener){
        //chrom firefor ...
        object.addEventListener('click',function(){
        },false);
    }
    else if(window.attachEvent){
        //IE
        object.attachEvent('onclick',function(){})
    }
    else{
        object.onclick = function(){}
    }

事件响应

① on + 事件:浏览器都能用,但是只能绑定一次

在JavaScript代码中(即<script>标签内)绑定事件可以使JavaScript代码与HTML标签分离,文档结构清晰,便于管理和开发。
在JavaScript代码中绑定事件的语法为:
elementObject.onXXX=function(){
    // 事件处理代码
}

其中:
elementObject 为DOM对象,即DOM元素。
onXXX 为事件名称。
例如,为 id="demo" 的按钮绑定一个事件,显示它的 type 属性:
<input  id="demo"  type="button"  value="点击我,显示 type 属性" />
<script type="text/javascript">
document.getElementById("demo").onclick=function(){
    alert(this.getAttribute("type"));  //  this 指当前发生事件的HTML元素,这里是<div>标签
}
</script>
--------------------- 
原文:https://blog.csdn.net/tylerlee008/article/details/79125697 

在DOM元素中直接绑定
这里的DOM元素,可以理解为HTML标签。JavaScript支持在标签中直接绑定事件,语法为:
onXXX=“JavaScript Code”

其中:

onXXX 为事件名称。例如,鼠标单击事件 onclick ,鼠标双击事件 ondouble,鼠标移入事件 onmouseover,鼠标移出事件 onmouseout 等。
JavaScript Code 为处理事件的JavaScript代码,一般是函数。

例如,单击一个按钮,弹出警告框的代码有如下两种写法。

  1. 原生函数

    <input οnclick=“alert(‘谢谢支持’)” type=“button” value=“点击我,弹出警告框” />

② addEventListener:谷歌

在这里插入图片描述

document.getElementById('test_div').addEventListener('click', function () {
        console.log('div');
    },true)
    document.getElementById('test_button').addEventListener('click', function(){
        console.log('test1');
    },false);
--------------------- 
原文:https://blog.csdn.net/tylerlee008/article/details/79125697 

③ attachEvent:IE

IE9以下不支持 addEventListener函数,IE浏览器要使用 attachEvent函数代替。
在这里插入图片描述

    var ele = document.getElementById('xDiv');
    
    ele.attachEvent('onclick',()=>{
        console.log('指向全局的this',this);
    });

3.CSS3属性在IE8以及IE9中的兼容性表现

如果某些库(如bootstrap)不支持IE的兼容模式,为了解决这个问题,我们需要在head中引入以下meta标签。这个标签能够确保你的每个页面能够在兼容模式下正常地被渲染。
是针对 IE8 版本的一个特殊文件头标记,Edge模式告诉IE以最高级 模式渲染文档,也就是任何IE版本都以当前版本所支持的最高级标准模式渲染,避免版本升级造成的影响。

<meta http-equiv="X-UA-Compatible" content="IE=edge”>
  • 浏览器市场份额的激烈竞争,给网页设计开发人员带来了兼容性设计的麻烦。仅IE浏览器就有好几个主流版本,IE6、IE7、IE8 等等。当然使用诸如 IETester,多版本 IE 共存解决方案之类的第三方集成工具,可以方便代码调试。但我们总需要找寻一种更为省时省力的方法。
  • X-UA-Compatible 是针对 IE8 版本的一个特殊文件头标记,用于为 IE8 指定不同的页面渲染模式。对于ie8之外的浏览器是不识别的

4.bootstrap

步骤一 同3:

<meta http-equiv="X-UA-Compatible" content="IE=edge”>

步骤二:
见:https://blog.csdn.net/qq_22703205/article/details/88933210
在这里插入图片描述

5.条件注释判断浏览器版本

<!--[if lt IE 9]>        <!--[endif]> 

版本小于9,不包括9。

<!--[if lt IE 9]>        <!--[endif]> 
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
<!--[if IE]> 所有的IE可识别 <![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lt IE 7]> IE7以下版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
<!--[if IE 8]> 仅IE8可识别 <![endif]-->
<!--[if IE 9]> 仅IE9可识别 <![endif]-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值