关于IE的一些hack

朴灿烈づ我的快乐病毒、 2021-12-10 14:21 394阅读 0赞

TIPS:对于完全放弃IE的幸福开发者,以下内容全是废话,建议跳转到 博客园 着页,寻找更优质的文章。

对于前端开发来说IE一直是心里的痛,不管你觉得做的多好的网页,放到它上面总会有一些意想不到的问题发生,所以你不得不针对IE单独做些手脚,你就有必要知道一些IE浏览器下的hack写法。

比较常用的几个hack(目前大多公司都只要求兼容到IE8,稍微变态点的也就是IE7下没大的错位就行了,下面hack足以):

\9 像如:width:6.5em;width:8em\9;在ie7-ie10宽度是8em;

\0 像如:width:6.5em;width:8em\0;在ie8-ie11宽度是8em;

* 像如:width:6.5em;*width:8em ie7以下会宽度是8em

针对IE11还可以通过以下媒体查询的方式来解决IE11下的问题:

@media screen and(-ms-high-contrast:active),(-ms-high-contrast:none) {

    div{width:8em;}

}

加上以上代码可以让IE11下div的宽度为8em,为了避免IE低版本下也会认识这一媒体查询,最好在screen前加上only。

在IE浏览器下,特别是IE8以下个人感觉真真没必要去太折腾(win7的最低配置都是ie8了),但是为了更好的体验,可以针对IE8以下浏览器给出一个友善的升级提示也是很不错的,IE下的条件注释语句值得拥有:

  1. //ie7及以下会提示用户去升级浏览器
  2. <!--[if lte IE 7]>
  3. <div class="browser-upgrade">你的浏览器版本过低,请到<a href="http://browsehappy.com" class="browser-upgrade__link">这里</a>更新,以获取最佳体验!</div>
  4. <![endif]-->

条件语句还有更多用途,在使用html5新增标签页面可以针对IE低版本引入htmlshiv让低版本浏览器也能识别html新增标签:

  1. <!--[if lt IE 9]>
  2. <script type="text/javascript" src="http://www.ijquery.cn/js/html5shiv.js"></script>
  3. <![endif]-->

ie的条件语句常用的有几下几种(所有条件注释语句在非IE浏览器下都是普通的注释,不要用非ie去给非IE的浏览执行操作):

lt :就是Less than的简写,也就是小于的意思。

lte :就是Less than or equal to的简写,也就是小于或等于的意思。

gt :就是Greater than的简写,也就是大于的意思。

gte:就是Greater than or equal to的简写,也就是大于或等于的意思。

!:就是不等于的意思,跟javascript里的不等于判断符相同。

  1. <!--[if IE]>
  2. 只有IE才支持
  3. <![endif]-->
  4. <!--[if !IE 7]>
  5. IE7不支持
  6. <![endif]-->
  7. <!--[if lt IE 8]>
  8. IE8以下浏览器才支持
  9. <![endif]-->
  10. <!--[if lte IE 8]>
  11. IE8及以下浏览器才支持
  12. <![endif]-->
  13. <!--[if gt IE 8]>
  14. IE8以上浏览器才支持
  15. <![endif]-->
  16. <!--[if gte IE 8]>
  17. IE8及以上浏览器才支持
  18. <![endif]-->

好好运用上面的方法解决你项目中的IE别样BUG吧。

转载于:https://www.cnblogs.com/xwwin/p/6962263.html

发表评论

表情:
评论列表 (有 0 条评论,394人围观)

还没有评论,来说两句吧...

相关阅读

    相关 css hack for IE

    IE是最恶心人的一款浏览器。但预计在2020年,我们弄的那些个WEB系统还是要兼容它。 这种老而不,好多CSS属性都不支持。因此,在开发过程中,要照顾照顾它。下面以css一个