Polyfills

填充物。。github上比较全的列表

IE总是有填不完的坑,在此总结一下,可能暂时都是一知半解,错了我会慢慢改的。

首先html5标签需要填充一些class,可以用html5.js处理,或者html5shiv

并且在css中将这些元素设为块(compass的reset已包括):

<!--[if lt IE 9]>
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style type="text/css">
    article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
    display: block;
}
</style>

对media query的支持有好几种polyfill,一种是css3-mediaqueries.js

<!--[if lt IE 9]>
    <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
<![endif]-->

或者不用IE的hack标签,让modernizer来测试浏览器是否支持media query,不支持的话用respond.js

<script>Modernizr.mq('(min-0)') || document.write("<script
src='js/respond.min.js'>x3C/script>")</script>

类似的,modernizr对canvas的判断如下:

if (Modernizr.canvas) {
  // 可以使用 canvas
} else {
  // 浏览器没有原生的 canvas 支持,做一定的降级处理,或是加载 polyfills
}

另外,曾经为了解决谷歌浏览器字号最小12像素而写的那段css,对谷歌已经无效,但是对ios设备上过大的字体有效:

html {
        -webkit-text-size-adjust: none;
    }
原文地址:https://www.cnblogs.com/haimingpro/p/3757604.html