浏览器兼容笔记整理

跟風遠走 提交于 2020-03-02 07:28:38

注:绿色字体为个人批注蓝色字体为个人笔记其他字体为他人文章内容。

部分内容转自:https://haomou.net/2015/09/17/2015_explore/

IE

1.IE7以下 不支持display:inline-block
2.IE img标签书写问题 IE10以下 如果自定义的标签属性写成:

<img datasrc="_imgUrl_" alt="_productName_">


IE会自动将属性的名称按照驼峰发修改成如下:

<img dataSrc="_imgUrl_" alt="_productName_">


所以,以后使用,保险的方法:

<img data-src="_imgUrl_" alt="_productName_">

3.IE6 不兼容min-width  原文链接:http://caibaojian.com/min-width-min-height.html

IE6 不兼容min-width,但我们可以通过IE的一个特性,就是能够根据内容的宽度或者高度自动扩充盒子的大小。一些人用CSS表达式来写,但更多的人也许会用IE6特有的hack来表达(hack方式可参阅http://blog.csdn.net/freshlover/article/details/12132801)。今天分享一个不用ie hack的代码,而是利用ie7等浏览器支持important的这个属性来改良。

以前的代码:

.min-box{min-width:200px; _width:200px; min-height:200px; _width:200px;}

现在改良的代码:

.min-box{min-width:200px; width:auto !important; width:200px; min-height:200px; height:auto !important; height:200px;}

由于important级别大于width级别,而IE6不识别important这个属性,所以以上代码就实现了浏览器的一致效果。

dom操作

1.IE8 不支持element.insertBefore()操作,其他浏览器支持的。

2.火狐浏览器不支持下面方式初始化日期:new Date("2015-10-30 23:59:59"),chrome支持,IE支持

 

webkit浏览器存在的问题js的浮点数精度问题

在webkit等核心的浏览器中,在控制台依次输入下面的算式,你会发现???

1
2
3
0.39 * 10
0.59 * 10
0.69 * 10

ps:其实是js的浮点数精度问题,解决这个问题最常见的思路就是把浮点数转成整数再做运算。

这里有一篇博客 http://www.cnblogs.com/yjzhu/p/3755159.html 讲了这个方法。

文章中的除法处理存在bug,测试发现如果转成整数后,当被除数小于除数时,相除仍会出现精度问题,不过这个问题js原生的除法运算已经解决了,不需要我们另外写方法。

解决思路总结如下,主要对js浮点数运算的乘法加法减法做优化

乘法:先把两个数转成整数相乘,记录下变成整数后扩大的倍数,即是pow(10,小数点后的位数之和)的值,最后在除以扩大的倍数还原回去。

加法:同乘法思路,加法和减法扩大和还原的倍数为pow(10,两个操作数的最长小数位)。

减法:同乘法和加法思路,在最后用toFixed()处理保留小数位的问题,保留的小数位为两个操作数的最长小数位。

另外,文章中用catch处理了小数位为空的情况,否则会遇到NaN值的问题,NaN不是一个数,所以在与其他数值比较时都会返回false,Math.max(NaN,number)方法会得到NaN,与NaN做运算的结果还是NaN,这样在加法和减法扩大还原时就会出现错误了(结果为NaN)。

 

手机浏览器

  1. 不支持 outerHTML 属性及其操作

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!