写在结尾

  • 最近一个对于微软的新闻吸引了我,据报道:

    微软公司5月19日发表,从明年6月15日起,IE浏览器将根本淘汰,标记着又一款数字产品将退出历史

IE浏览器的历史

  • Internet Explorer(简称:IE)是微软公司推出的一款网页浏览器。原称Microsoft Internet Explorer(6版本以前)和Windows Internet Explorer(7、8、9、10、11版本)。在IE7以前,中文直译为“网络探路者”,但在IE7当前官网便间接俗称"IE浏览器"。
  • 2015年3月微软确认将放弃IE品牌。转而在Windows 10上,用Microsoft Edge取代了Internet Explorer
  • 2016年1月12日,微软公司发表于这一天进行对Internet Explorer 8/9/10三个版本的技术支持,用户将不会再收到任何来自微软官网的IE安全更新;作为代替计划,微软倡议用户降级到IE 11或者改用Microsoft Edge浏览器。
  • 2020年8月18日音讯,微软服务将辞别其古老的IE浏览器,在2021年8月17日进行微软365应用程序的IE 11反对。微软也将在2021年3月9日完结对其legacy Edge浏览器的反对。

IE为什么会这么坚挺

  • 1.国内很多老而大的我的项目,在前些年对兼容性要求高,很多前端我的项目还是混编,用的JQuery这些库开发,大到不能倒,重构难度大,且对于一些我的项目来说重构的投入与回报不成正比(老板说:我反正能用啊...等等),加上有可能就是外包写的,写完跑路了。
  • 2.不思进取,很多管理人员,对于技术长期停滞,无所谓的态度,特地是一些旱涝保收性质的部门,用着客户就用的IE浏览器啊..这种幌子一糊弄就是几年
  • 3.客户自身有问题,不足教育,IE肯定比谷歌浏览器平安吗?这里给个问号,然而IE绝对关闭,很多API和权限接口凋谢没有那么多,开发效率和产品最终实现成果都会打折扣,性能也是会差不少。你就装一个谷歌浏览器也不会挂的
  • 4.敏感性质的客户,例如军工国防敏感部门的,不敢在电脑上装置其他软件,只敢用自带浏览器IE,那么这次会彻底解决,应用自带的Microsoft Edge.

IE细数N宗罪

  • 轻易百度一篇文章,就会进去几十条,例如:

    一、CSS常见问题1、H5标签兼容性  解决方案:<script src="http://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>2、元素浮动之后,能设置宽度的话就给元素加宽度,如果须要宽度是内容撑开的,就给它里边的块元素加上浮动float:left;3、第一块元素浮动,第二块元素加margin-left值等于第一块元素宽度,在IE6下会有间隙问题  解决方案:不要用margin-left,给两个元素都加上浮动float:left;4、IE6下子元素超出父级宽高,会把父级宽高撑开,比方用于搁置轮播的ul宽度会超出父元素  解决方案:不要让子元素的宽高超过父级5、P蕴含块元素嵌套规定  牢记规定:p、h标签不能嵌套块元素二、CSS兼容性问题1、margin兼容性问题  1)margin-top传递,子元素高低margin会传递给父级  阻止:触发BFC(如overflow:hidden;援救规范浏览器及IE78)、触发IE的haslayout  zoom:1(援救IE67);  2)高低margin叠压(触发条件:同级元素,第一个元素的下与第二个元素的上会叠压在一起)  解决方案:两个元素离开设置margin,而后尽量应用同一方向的margin,比方margin-top2、display:inline-block;   块元素变为内联块, IE67不兼容;内联元素变为内联块,所有浏览器都反对  解决方案:{display:inline-block; *display:inline; *zoom:1;}  发现问题:当然,变为内联块后,有一个个性就是如果元素换行,在页面上元素之间就会有空隙的,空隙大小为一个空格的像素大小。3、IE6元素最小高度为19px  解决方案:overflow:hidden;4、IE67双边距,当元素浮动后,再设置margin,那么就会产生双倍边距  解决方案:针对IE67,增加*display:inline;款式,比方页面上横向排列的几组块,会常常遇到5、li里元素都浮动,在IE67下方会产生4px间隙问题  解决方案:针对IE67,增加*vertical-align:top;款式6、IE6下,两个浮动元素之间有正文或者内联元素并且和父级宽度相差不超过3px,会导致多复制一些文字问题  解决方案:1)两个浮动元素之间避免出现内联元素或者正文       2)与父级宽度相差3px或以上  7、IE67父级元素的overflow:hidden;子元素设置position:relative后,就包不住子元素了   解决方案:针对IE67,给父级元素增加position:relative;8、IE6下相对定位元素父级宽高是奇数,相对定位元素的right和bottom值会有1px的偏差   解决方案:防止父级宽度呈现奇数9、IE6下相对定位元素和浮动元素并列相对定位元素隐没   解决方案:浮动元素和相对定位元素时同级的话,定位元素就会隐没,只有让它们两个不处于同级就能够防止这个bug了10、IE6下input的空隙   解决方案:针对IE67,给input元素增加*float:left;11、IE6下输出类型表单控件背景问题,背景不固定,滚动了  解决方案:设置background-attachment:fixed;12、line-height  在IE67、FF下不兼容,会有几个像素的偏差,目测只有IE8和其余规范浏览器失常  IE6下,想给给图片设置line-height来达到垂直居中成果是实现不了的,就给img标签独自设置{float:left;postion:relative;top:...}  当然,文本的line-height还是辨认的13、常见文章列表布局:题目+公布日期    <ul>    <li>这里是文章列表题目,我是奇葩的IE浏览器<span style="float:right">2015-07-17</span></li>    <li>这里是文章列表题目2,我是奇葩的IE浏览器<span style="float:right">2015-07-17</span></li>   </ul>假如你依照以上布局,那么祝贺你,在IE67下公布日期会掉到下一行去  解决方案,按如下布局:   <ul>    <li><span style="float:right">2015-07-17</span>这里是文章列表题目,我是奇葩的IE浏览器</li>    <li><span style="float:right">2015-07-17</span>这里是文章列表题目2,我是奇葩的IE浏览器</li>   </ul>或   <ul>    <li><span style="float:left">这里是文章列表题目,我是奇葩的IE浏览器</span><span style="float:right">2015-07-17</span></li>    <li><span style="float:left">这里是文章列表题目2,我是奇葩的IE浏览器</span><span style="float:right">2015-07-17</span></li>   </ul>14、遮罩弹窗  规范 不透明度:opacity:0~1  IE678滤镜:filter:alpha(opacity=0~100);15、<a>的手形光标  规范浏览器下,不须要设置也有  IE6下没有,就给a{cursor:pointer;}16、<a>的 text-decoration:none;  规范下,只需 a {text-decoration:none;}  IE6下,a {text-decoration:none;}  并且 a:hover {text-decoration:none;}三、CSS hack\9   IE67  8-10   例如:background:blue\9;+*  IE67      例如:*background:yellow;  +background:yellow;_    IE6      例如:_background:green; 四、png-24兼容性问题,IE6不反对解决方案:  1)援用Js插件,不能解决body以上的,最好放在页面底部,这样不影响页面加载,也就是放在</body>标签下面      <!--[if IE 6]>      <script src="DD_belatedPNG_0.0.8a.js" type="text/javascript"></script>      <script>        DD_belatedPNG.fix("*");      </script>    <![endif]-->   2)原生滤镜,给背景图所在的标签加上如下款式,比方body    body {        _background-image:none;        _filter:progid:DXImage Transform.Microsoft.AlphaImageLoader(src="XX.png",sizingMethod="crop");       }   
    原文地址:https://www.iefans.net/dibanb...
  • 咱们想想当年的前端开发,连Ant-Design都没有的时代,拿着JQuery,解决着各种头痛的IE问题,写着各种polyfill,就会感叹,这是一个好的时代,各种技术百花齐放,轮子满天飞...

接下来应该做什么

  • 把精力放在兼容谷歌浏览器和Edge等支流浏览器上,举荐一个网站,can i use.能够查问各种兼容性问题的

    https://caniuse.com/
  • 例如requestAnimationFrame
  • 从当初开始放弃兼容IE,IE这次肯定会退出历史舞台,不要存在侥幸心理,要教育客户,让他们有感知的逐渐退出应用IE
  • 放松新技术的学习,将来的前端,技术肯定会比当初还要多,彻底丢下IE这个包袱当前,能够说是一只狂奔的野狗,不必再关怀兼容性问题,创新性的库和框架肯定会遍地开花

讲个段子

  • 小王和小明同样是计算机专业毕业,毕业时小王去做了前端,小明去做了后端,工作一年后两人相约辞职,去旅行半年,旅行完结后,小王没有再找到工作了,因为前端的技术这半年更新太快了,之前的技术齐全掉队了

❤️ 看完三件事
如果你感觉这篇内容对你挺有启发,我想邀请你帮我三个小忙:

点「在看」,让更多的人也能看到这篇内容(珍藏不点赞,都是耍流氓 -_-)

关注公众号「前端巅峰」,不定期分享原创常识。

也看看其它文章