共计 4519 个字符,预计需要花费 12 分钟才能阅读完成。
写在结尾
-
最近一个对于微软的新闻吸引了我,据报道:
微软公司 5 月 19 日发表,从明年 6 月 15 日起,IE 浏览器将根本淘汰,标记着又一款数字产品将退出历史
IE 浏览器的历史
Internet Explorer
(简称:IE)是微软公司推出的一款网页浏览器。原称 MicrosoftInternet 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-top 2、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 这个包袱当前,能够说是一只
狂奔的野狗
, 不必再关怀兼容性问题,创新性的库和框架肯定会遍地开花
讲个段子
- 小王和小明同样是计算机专业毕业,毕业时小王去做了前端,小明去做了后端,工作一年后两人相约辞职,去旅行半年,旅行完结后,小王没有再找到工作了,因为前端的技术这半年更新太快了,之前的技术齐全掉队了
❤️ 看完三件事
如果你感觉这篇内容对你挺有启发,我想邀请你帮我三个小忙:
点「在看」,让更多的人也能看到这篇内容(珍藏不点赞,都是耍流氓 -_-)
关注公众号「前端巅峰
」,不定期分享原创常识。
也看看其它文章
正文完