Last update : June 25, 2014
Polyfills, or polyfillers, are pieces of code that provides the technology that a developer expects a browser to provide natively. Paul Irish has given the following definition: A shim that mimics a future API providing fallback functionality to older browsers.
Alexander Farkas (author of Webshims Lib, a modular capability-based polyfill-loading library) says : Every polyfill is a hack! innovative frontend development is hacky and always will be hacky!
Polyfills are especially relevant in the context of responsive web design.
A list of HTML5 Cross Browser Polyfills is available at the Modernizr GitHub website. The HTML5Please website provides look up tables for HTML5, CSS3, etc features to know if they are ready for use, and if so, to find out how you should use them : with polyfills, fallbacks or as they are.
Links to more useful informations about polyfill’s are listed hereafter :
- The Developer’s Guide To Writing Cross-Browser JavaScript Polyfills, by Addy Osmani
- CSS3 Pie, by Sencha Inc.
- Respond.js: Fast CSS3 Media Queries for Internet Explorer 6-8 and more, by Filament Group
- CSS3 please
- Emulating CSS Child Selectors in IE6, by Kevin Craft
- ie7-js, by Dean Edwards : A JavaScript library to make MSIE behave like a standards-compliant browser
- Browser Compatibility Check for Internet Explorer Versions from 5.5 to 10, by Core Services
- Ultimate IE6 Cheatsheet : How To Fix 25+ Internet Explorer 6 Bugs, by Benjamin Kuker
- select[ivirz] – CSS3 selectors for IE, by Keith Clark
- CSS Hacks, by David Hammond