Last active
November 13, 2017 22:00
-
-
Save webin/8997840 to your computer and use it in GitHub Desktop.
Html5 Responsive Template For IE
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> | |
| <!--[if IE 6]><html class="ie6 ielt9 no-css3 no-js lte7"><![endif]--> | |
| <!--[if IE 7]><html class="ie7 ielt9 no-css3 no-js lte7"><![endif]--> | |
| <!--[if IE 8]><html class="ie8 ielt9 no-css3 no-js"><![endif]--> | |
| <!--[if !(IE 6) | !(IE 7) | !(IE 8) ]><!--><html class="no-js"><!--<![endif]--> | |
| <head> | |
| <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame Remove this if you use the .htaccess --> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> | |
| <!-- Mobile viewport optimized: j.mp/bplateviewport --> | |
| <meta name="viewport" content="width=device-width; initial-scale=1.0" /> | |
| <!-- CSS: implied media="all" --> | |
| <link rel="stylesheet" href="css/style.css" /> | |
| <!--[if IE 6]> | |
| <link rel="stylesheet" href="http://universal-ie6-css.googlecode.com/files/ie6.1.1.css" /> | |
| <![endif]--> | |
| <!-- Uncomment if you are specifically targeting less enabled mobile browsers | |
| <link rel="stylesheet" media="handheld" href="css/handheld.css" /> --> | |
| <!-- https://github.com/scottjehl/Respond --> | |
| <!--[if lt IE 9]> | |
| <script src="js/respond.js"></script> | |
| <![endif]--> | |
| <!-- to help IE recognise the new HTML tags --> | |
| <!--[if lt IE 9]> | |
| <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> | |
| <![endif]--> | |
| <!-- http://modernizr.com/ --> | |
| <script src="js/modernizr.js"></script> | |
| <!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects --> | |
| <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script> | |
| <title>Html5 Responsive Template For IE</title> | |
| </head> | |
| <body> | |
| <!--[if lt IE 7]> | |
| <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p> | |
| <![endif]--> | |
| <div class="header-container"> | |
| <header class="wrapper clearfix"> | |
| <h1 class="title">h1.title</h1> | |
| <nav> | |
| <ul> | |
| <li><a href="#">nav ul li a</a></li> | |
| <li><a href="#">nav ul li a</a></li> | |
| <li><a href="#">nav ul li a</a></li> | |
| </ul> | |
| </nav> | |
| </header> | |
| </div> | |
| <div class="main-container"> | |
| <div class="main wrapper clearfix"> | |
| <article> | |
| <header> | |
| <h1>article header h1</h1> | |
| <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sodales urna non odio egestas tempor. Nunc vel vehicula ante. Etiam bibendum iaculis libero, eget molestie nisl pharetra in. In semper consequat est, eu porta velit mollis nec.</p> | |
| </header> | |
| <section> | |
| <h2>article section h2</h2> | |
| <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sodales urna non odio egestas tempor. Nunc vel vehicula ante. Etiam bibendum iaculis libero, eget molestie nisl pharetra in. In semper consequat est, eu porta velit mollis nec. Curabitur posuere enim eget turpis feugiat tempor. Etiam ullamcorper lorem dapibus velit suscipit ultrices. Proin in est sed erat facilisis pharetra.</p> | |
| </section> | |
| <section> | |
| <h2>article section h2</h2> | |
| <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sodales urna non odio egestas tempor. Nunc vel vehicula ante. Etiam bibendum iaculis libero, eget molestie nisl pharetra in. In semper consequat est, eu porta velit mollis nec. Curabitur posuere enim eget turpis feugiat tempor. Etiam ullamcorper lorem dapibus velit suscipit ultrices. Proin in est sed erat facilisis pharetra.</p> | |
| </section> | |
| <footer> | |
| <h3>article footer h3</h3> | |
| <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sodales urna non odio egestas tempor. Nunc vel vehicula ante. Etiam bibendum iaculis libero, eget molestie nisl pharetra in. In semper consequat est, eu porta velit mollis nec. Curabitur posuere enim eget turpis feugiat tempor.</p> | |
| </footer> | |
| </article> | |
| <aside> | |
| <h3>aside</h3> | |
| <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sodales urna non odio egestas tempor. Nunc vel vehicula ante. Etiam bibendum iaculis libero, eget molestie nisl pharetra in. In semper consequat est, eu porta velit mollis nec. Curabitur posuere enim eget turpis feugiat tempor. Etiam ullamcorper lorem dapibus velit suscipit ultrices.</p> | |
| </aside> | |
| </div> <!-- #main --> | |
| </div> <!-- #main-container --> | |
| <div class="footer-container"> | |
| <footer class="wrapper"> | |
| <h3>footer</h3> | |
| </footer> | |
| </div> | |
| </body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* Modernizr 2.7.1 (Custom Build) | MIT & BSD | |
| * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load | |
| */ | |
| ; | |
| window.Modernizr = (function( window, document, undefined ) { | |
| var version = '2.7.1', | |
| Modernizr = {}, | |
| enableClasses = true, | |
| docElement = document.documentElement, | |
| mod = 'modernizr', | |
| modElem = document.createElement(mod), | |
| mStyle = modElem.style, | |
| inputElem = document.createElement('input') , | |
| smile = ':)', | |
| toString = {}.toString, | |
| prefixes = ' -webkit- -moz- -o- -ms- '.split(' '), | |
| omPrefixes = 'Webkit Moz O ms', | |
| cssomPrefixes = omPrefixes.split(' '), | |
| domPrefixes = omPrefixes.toLowerCase().split(' '), | |
| ns = {'svg': 'http://www.w3.org/2000/svg'}, | |
| tests = {}, | |
| inputs = {}, | |
| attrs = {}, | |
| classes = [], | |
| slice = classes.slice, | |
| featureName, | |
| injectElementWithStyles = function( rule, callback, nodes, testnames ) { | |
| var style, ret, node, docOverflow, | |
| div = document.createElement('div'), | |
| body = document.body, | |
| fakeBody = body || document.createElement('body'); | |
| if ( parseInt(nodes, 10) ) { | |
| while ( nodes-- ) { | |
| node = document.createElement('div'); | |
| node.id = testnames ? testnames[nodes] : mod + (nodes + 1); | |
| div.appendChild(node); | |
| } | |
| } | |
| style = ['­','<style id="s', mod, '">', rule, '</style>'].join(''); | |
| div.id = mod; | |
| (body ? div : fakeBody).innerHTML += style; | |
| fakeBody.appendChild(div); | |
| if ( !body ) { | |
| fakeBody.style.background = ''; | |
| fakeBody.style.overflow = 'hidden'; | |
| docOverflow = docElement.style.overflow; | |
| docElement.style.overflow = 'hidden'; | |
| docElement.appendChild(fakeBody); | |
| } | |
| ret = callback(div, rule); | |
| if ( !body ) { | |
| fakeBody.parentNode.removeChild(fakeBody); | |
| docElement.style.overflow = docOverflow; | |
| } else { | |
| div.parentNode.removeChild(div); | |
| } | |
| return !!ret; | |
| }, | |
| isEventSupported = (function() { | |
| var TAGNAMES = { | |
| 'select': 'input', 'change': 'input', | |
| 'submit': 'form', 'reset': 'form', | |
| 'error': 'img', 'load': 'img', 'abort': 'img' | |
| }; | |
| function isEventSupported( eventName, element ) { | |
| element = element || document.createElement(TAGNAMES[eventName] || 'div'); | |
| eventName = 'on' + eventName; | |
| var isSupported = eventName in element; | |
| if ( !isSupported ) { | |
| if ( !element.setAttribute ) { | |
| element = document.createElement('div'); | |
| } | |
| if ( element.setAttribute && element.removeAttribute ) { | |
| element.setAttribute(eventName, ''); | |
| isSupported = is(element[eventName], 'function'); | |
| if ( !is(element[eventName], 'undefined') ) { | |
| element[eventName] = undefined; | |
| } | |
| element.removeAttribute(eventName); | |
| } | |
| } | |
| element = null; | |
| return isSupported; | |
| } | |
| return isEventSupported; | |
| })(), | |
| _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp; | |
| if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) { | |
| hasOwnProp = function (object, property) { | |
| return _hasOwnProperty.call(object, property); | |
| }; | |
| } | |
| else { | |
| hasOwnProp = function (object, property) { | |
| return ((property in object) && is(object.constructor.prototype[property], 'undefined')); | |
| }; | |
| } | |
| if (!Function.prototype.bind) { | |
| Function.prototype.bind = function bind(that) { | |
| var target = this; | |
| if (typeof target != "function") { | |
| throw new TypeError(); | |
| } | |
| var args = slice.call(arguments, 1), | |
| bound = function () { | |
| if (this instanceof bound) { | |
| var F = function(){}; | |
| F.prototype = target.prototype; | |
| var self = new F(); | |
| var result = target.apply( | |
| self, | |
| args.concat(slice.call(arguments)) | |
| ); | |
| if (Object(result) === result) { | |
| return result; | |
| } | |
| return self; | |
| } else { | |
| return target.apply( | |
| that, | |
| args.concat(slice.call(arguments)) | |
| ); | |
| } | |
| }; | |
| return bound; | |
| }; | |
| } | |
| function setCss( str ) { | |
| mStyle.cssText = str; | |
| } | |
| function setCssAll( str1, str2 ) { | |
| return setCss(prefixes.join(str1 + ';') + ( str2 || '' )); | |
| } | |
| function is( obj, type ) { | |
| return typeof obj === type; | |
| } | |
| function contains( str, substr ) { | |
| return !!~('' + str).indexOf(substr); | |
| } | |
| function testProps( props, prefixed ) { | |
| for ( var i in props ) { | |
| var prop = props[i]; | |
| if ( !contains(prop, "-") && mStyle[prop] !== undefined ) { | |
| return prefixed == 'pfx' ? prop : true; | |
| } | |
| } | |
| return false; | |
| } | |
| function testDOMProps( props, obj, elem ) { | |
| for ( var i in props ) { | |
| var item = obj[props[i]]; | |
| if ( item !== undefined) { | |
| if (elem === false) return props[i]; | |
| if (is(item, 'function')){ | |
| return item.bind(elem || obj); | |
| } | |
| return item; | |
| } | |
| } | |
| return false; | |
| } | |
| function testPropsAll( prop, prefixed, elem ) { | |
| var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), | |
| props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' '); | |
| if(is(prefixed, "string") || is(prefixed, "undefined")) { | |
| return testProps(props, prefixed); | |
| } else { | |
| props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' '); | |
| return testDOMProps(props, prefixed, elem); | |
| } | |
| } tests['flexbox'] = function() { | |
| return testPropsAll('flexWrap'); | |
| }; | |
| tests['flexboxlegacy'] = function() { | |
| return testPropsAll('boxDirection'); | |
| }; | |
| tests['canvas'] = function() { | |
| var elem = document.createElement('canvas'); | |
| return !!(elem.getContext && elem.getContext('2d')); | |
| }; | |
| tests['canvastext'] = function() { | |
| return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function')); | |
| }; | |
| tests['webgl'] = function() { | |
| return !!window.WebGLRenderingContext; | |
| }; | |
| tests['touch'] = function() { | |
| var bool; | |
| if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) { | |
| bool = true; | |
| } else { | |
| injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) { | |
| bool = node.offsetTop === 9; | |
| }); | |
| } | |
| return bool; | |
| }; | |
| tests['geolocation'] = function() { | |
| return 'geolocation' in navigator; | |
| }; | |
| tests['postmessage'] = function() { | |
| return !!window.postMessage; | |
| }; | |
| tests['websqldatabase'] = function() { | |
| return !!window.openDatabase; | |
| }; | |
| tests['indexedDB'] = function() { | |
| return !!testPropsAll("indexedDB", window); | |
| }; | |
| tests['hashchange'] = function() { | |
| return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7); | |
| }; | |
| tests['history'] = function() { | |
| return !!(window.history && history.pushState); | |
| }; | |
| tests['draganddrop'] = function() { | |
| var div = document.createElement('div'); | |
| return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div); | |
| }; | |
| tests['websockets'] = function() { | |
| return 'WebSocket' in window || 'MozWebSocket' in window; | |
| }; | |
| tests['rgba'] = function() { | |
| setCss('background-color:rgba(150,255,150,.5)'); | |
| return contains(mStyle.backgroundColor, 'rgba'); | |
| }; | |
| tests['hsla'] = function() { | |
| setCss('background-color:hsla(120,40%,100%,.5)'); | |
| return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla'); | |
| }; | |
| tests['multiplebgs'] = function() { | |
| setCss('background:url(https://),url(https://),red url(https://)'); | |
| return (/(url\s*\(.*?){3}/).test(mStyle.background); | |
| }; tests['backgroundsize'] = function() { | |
| return testPropsAll('backgroundSize'); | |
| }; | |
| tests['borderimage'] = function() { | |
| return testPropsAll('borderImage'); | |
| }; | |
| tests['borderradius'] = function() { | |
| return testPropsAll('borderRadius'); | |
| }; | |
| tests['boxshadow'] = function() { | |
| return testPropsAll('boxShadow'); | |
| }; | |
| tests['textshadow'] = function() { | |
| return document.createElement('div').style.textShadow === ''; | |
| }; | |
| tests['opacity'] = function() { | |
| setCssAll('opacity:.55'); | |
| return (/^0.55$/).test(mStyle.opacity); | |
| }; | |
| tests['cssanimations'] = function() { | |
| return testPropsAll('animationName'); | |
| }; | |
| tests['csscolumns'] = function() { | |
| return testPropsAll('columnCount'); | |
| }; | |
| tests['cssgradients'] = function() { | |
| var str1 = 'background-image:', | |
| str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));', | |
| str3 = 'linear-gradient(left top,#9f9, white);'; | |
| setCss( | |
| (str1 + '-webkit- '.split(' ').join(str2 + str1) + | |
| prefixes.join(str3 + str1)).slice(0, -str1.length) | |
| ); | |
| return contains(mStyle.backgroundImage, 'gradient'); | |
| }; | |
| tests['cssreflections'] = function() { | |
| return testPropsAll('boxReflect'); | |
| }; | |
| tests['csstransforms'] = function() { | |
| return !!testPropsAll('transform'); | |
| }; | |
| tests['csstransforms3d'] = function() { | |
| var ret = !!testPropsAll('perspective'); | |
| if ( ret && 'webkitPerspective' in docElement.style ) { | |
| injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) { | |
| ret = node.offsetLeft === 9 && node.offsetHeight === 3; | |
| }); | |
| } | |
| return ret; | |
| }; | |
| tests['csstransitions'] = function() { | |
| return testPropsAll('transition'); | |
| }; | |
| tests['fontface'] = function() { | |
| var bool; | |
| injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) { | |
| var style = document.getElementById('smodernizr'), | |
| sheet = style.sheet || style.styleSheet, | |
| cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : ''; | |
| bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0; | |
| }); | |
| return bool; | |
| }; | |
| tests['generatedcontent'] = function() { | |
| var bool; | |
| injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) { | |
| bool = node.offsetHeight >= 3; | |
| }); | |
| return bool; | |
| }; | |
| tests['video'] = function() { | |
| var elem = document.createElement('video'), | |
| bool = false; | |
| try { | |
| if ( bool = !!elem.canPlayType ) { | |
| bool = new Boolean(bool); | |
| bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,''); | |
| bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,''); | |
| bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,''); | |
| } | |
| } catch(e) { } | |
| return bool; | |
| }; | |
| tests['audio'] = function() { | |
| var elem = document.createElement('audio'), | |
| bool = false; | |
| try { | |
| if ( bool = !!elem.canPlayType ) { | |
| bool = new Boolean(bool); | |
| bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''); | |
| bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,''); | |
| bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,''); | |
| bool.m4a = ( elem.canPlayType('audio/x-m4a;') || | |
| elem.canPlayType('audio/aac;')) .replace(/^no$/,''); | |
| } | |
| } catch(e) { } | |
| return bool; | |
| }; | |
| tests['localstorage'] = function() { | |
| try { | |
| localStorage.setItem(mod, mod); | |
| localStorage.removeItem(mod); | |
| return true; | |
| } catch(e) { | |
| return false; | |
| } | |
| }; | |
| tests['sessionstorage'] = function() { | |
| try { | |
| sessionStorage.setItem(mod, mod); | |
| sessionStorage.removeItem(mod); | |
| return true; | |
| } catch(e) { | |
| return false; | |
| } | |
| }; | |
| tests['webworkers'] = function() { | |
| return !!window.Worker; | |
| }; | |
| tests['applicationcache'] = function() { | |
| return !!window.applicationCache; | |
| }; | |
| tests['svg'] = function() { | |
| return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect; | |
| }; | |
| tests['inlinesvg'] = function() { | |
| var div = document.createElement('div'); | |
| div.innerHTML = '<svg/>'; | |
| return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; | |
| }; | |
| tests['smil'] = function() { | |
| return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate'))); | |
| }; | |
| tests['svgclippaths'] = function() { | |
| return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath'))); | |
| }; | |
| function webforms() { | |
| Modernizr['input'] = (function( props ) { | |
| for ( var i = 0, len = props.length; i < len; i++ ) { | |
| attrs[ props[i] ] = !!(props[i] in inputElem); | |
| } | |
| if (attrs.list){ | |
| attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement); | |
| } | |
| return attrs; | |
| })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' ')); | |
| Modernizr['inputtypes'] = (function(props) { | |
| for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) { | |
| inputElem.setAttribute('type', inputElemType = props[i]); | |
| bool = inputElem.type !== 'text'; | |
| if ( bool ) { | |
| inputElem.value = smile; | |
| inputElem.style.cssText = 'position:absolute;visibility:hidden;'; | |
| if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) { | |
| docElement.appendChild(inputElem); | |
| defaultView = document.defaultView; | |
| bool = defaultView.getComputedStyle && | |
| defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' && | |
| (inputElem.offsetHeight !== 0); | |
| docElement.removeChild(inputElem); | |
| } else if ( /^(search|tel)$/.test(inputElemType) ){ | |
| } else if ( /^(url|email)$/.test(inputElemType) ) { | |
| bool = inputElem.checkValidity && inputElem.checkValidity() === false; | |
| } else { | |
| bool = inputElem.value != smile; | |
| } | |
| } | |
| inputs[ props[i] ] = !!bool; | |
| } | |
| return inputs; | |
| })('search tel url email datetime date month week time datetime-local number range color'.split(' ')); | |
| } | |
| for ( var feature in tests ) { | |
| if ( hasOwnProp(tests, feature) ) { | |
| featureName = feature.toLowerCase(); | |
| Modernizr[featureName] = tests[feature](); | |
| classes.push((Modernizr[featureName] ? '' : 'no-') + featureName); | |
| } | |
| } | |
| Modernizr.input || webforms(); | |
| Modernizr.addTest = function ( feature, test ) { | |
| if ( typeof feature == 'object' ) { | |
| for ( var key in feature ) { | |
| if ( hasOwnProp( feature, key ) ) { | |
| Modernizr.addTest( key, feature[ key ] ); | |
| } | |
| } | |
| } else { | |
| feature = feature.toLowerCase(); | |
| if ( Modernizr[feature] !== undefined ) { | |
| return Modernizr; | |
| } | |
| test = typeof test == 'function' ? test() : test; | |
| if (typeof enableClasses !== "undefined" && enableClasses) { | |
| docElement.className += ' ' + (test ? '' : 'no-') + feature; | |
| } | |
| Modernizr[feature] = test; | |
| } | |
| return Modernizr; | |
| }; | |
| setCss(''); | |
| modElem = inputElem = null; | |
| ;(function(window, document) { | |
| var version = '3.7.0'; | |
| var options = window.html5 || {}; | |
| var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; | |
| var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; | |
| var supportsHtml5Styles; | |
| var expando = '_html5shiv'; | |
| var expanID = 0; | |
| var expandoData = {}; | |
| var supportsUnknownElements; | |
| (function() { | |
| try { | |
| var a = document.createElement('a'); | |
| a.innerHTML = '<xyz></xyz>'; | |
| supportsHtml5Styles = ('hidden' in a); | |
| supportsUnknownElements = a.childNodes.length == 1 || (function() { | |
| (document.createElement)('a'); | |
| var frag = document.createDocumentFragment(); | |
| return ( | |
| typeof frag.cloneNode == 'undefined' || | |
| typeof frag.createDocumentFragment == 'undefined' || | |
| typeof frag.createElement == 'undefined' | |
| ); | |
| }()); | |
| } catch(e) { | |
| supportsHtml5Styles = true; | |
| supportsUnknownElements = true; | |
| } | |
| }()); | |
| function addStyleSheet(ownerDocument, cssText) { | |
| var p = ownerDocument.createElement('p'), | |
| parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; | |
| p.innerHTML = 'x<style>' + cssText + '</style>'; | |
| return parent.insertBefore(p.lastChild, parent.firstChild); | |
| } | |
| function getElements() { | |
| var elements = html5.elements; | |
| return typeof elements == 'string' ? elements.split(' ') : elements; | |
| } | |
| function getExpandoData(ownerDocument) { | |
| var data = expandoData[ownerDocument[expando]]; | |
| if (!data) { | |
| data = {}; | |
| expanID++; | |
| ownerDocument[expando] = expanID; | |
| expandoData[expanID] = data; | |
| } | |
| return data; | |
| } | |
| function createElement(nodeName, ownerDocument, data){ | |
| if (!ownerDocument) { | |
| ownerDocument = document; | |
| } | |
| if(supportsUnknownElements){ | |
| return ownerDocument.createElement(nodeName); | |
| } | |
| if (!data) { | |
| data = getExpandoData(ownerDocument); | |
| } | |
| var node; | |
| if (data.cache[nodeName]) { | |
| node = data.cache[nodeName].cloneNode(); | |
| } else if (saveClones.test(nodeName)) { | |
| node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); | |
| } else { | |
| node = data.createElem(nodeName); | |
| } | |
| return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node; | |
| } | |
| function createDocumentFragment(ownerDocument, data){ | |
| if (!ownerDocument) { | |
| ownerDocument = document; | |
| } | |
| if(supportsUnknownElements){ | |
| return ownerDocument.createDocumentFragment(); | |
| } | |
| data = data || getExpandoData(ownerDocument); | |
| var clone = data.frag.cloneNode(), | |
| i = 0, | |
| elems = getElements(), | |
| l = elems.length; | |
| for(;i<l;i++){ | |
| clone.createElement(elems[i]); | |
| } | |
| return clone; | |
| } | |
| function shivMethods(ownerDocument, data) { | |
| if (!data.cache) { | |
| data.cache = {}; | |
| data.createElem = ownerDocument.createElement; | |
| data.createFrag = ownerDocument.createDocumentFragment; | |
| data.frag = data.createFrag(); | |
| } | |
| ownerDocument.createElement = function(nodeName) { | |
| if (!html5.shivMethods) { | |
| return data.createElem(nodeName); | |
| } | |
| return createElement(nodeName, ownerDocument, data); | |
| }; | |
| ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' + | |
| 'var n=f.cloneNode(),c=n.createElement;' + | |
| 'h.shivMethods&&(' + | |
| getElements().join().replace(/[\w\-]+/g, function(nodeName) { | |
| data.createElem(nodeName); | |
| data.frag.createElement(nodeName); | |
| return 'c("' + nodeName + '")'; | |
| }) + | |
| ');return n}' | |
| )(html5, data.frag); | |
| } | |
| function shivDocument(ownerDocument) { | |
| if (!ownerDocument) { | |
| ownerDocument = document; | |
| } | |
| var data = getExpandoData(ownerDocument); | |
| if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) { | |
| data.hasCSS = !!addStyleSheet(ownerDocument, | |
| 'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' + | |
| 'mark{background:#FF0;color:#000}' + | |
| 'template{display:none}' | |
| ); | |
| } | |
| if (!supportsUnknownElements) { | |
| shivMethods(ownerDocument, data); | |
| } | |
| return ownerDocument; | |
| } | |
| var html5 = { | |
| 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video', | |
| 'version': version, | |
| 'shivCSS': (options.shivCSS !== false), | |
| 'supportsUnknownElements': supportsUnknownElements, | |
| 'shivMethods': (options.shivMethods !== false), | |
| 'type': 'default', | |
| 'shivDocument': shivDocument, | |
| createElement: createElement, | |
| createDocumentFragment: createDocumentFragment | |
| }; | |
| window.html5 = html5; | |
| shivDocument(document); | |
| }(this, document)); | |
| Modernizr._version = version; | |
| Modernizr._prefixes = prefixes; | |
| Modernizr._domPrefixes = domPrefixes; | |
| Modernizr._cssomPrefixes = cssomPrefixes; | |
| Modernizr.hasEvent = isEventSupported; | |
| Modernizr.testProp = function(prop){ | |
| return testProps([prop]); | |
| }; | |
| Modernizr.testAllProps = testPropsAll; | |
| Modernizr.testStyles = injectElementWithStyles; docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + | |
| (enableClasses ? ' js ' + classes.join(' ') : ''); | |
| return Modernizr; | |
| })(this, this.document); | |
| /*yepnope1.5.4|WTFPL*/ | |
| (function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}})(this,document); | |
| Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0));}; | |
| ; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* Respond.js: min/max-width media query polyfill. (c) Scott Jehl. MIT Lic. j.mp/respondjs */ | |
| (function( w ){ | |
| "use strict"; | |
| //exposed namespace | |
| var respond = {}; | |
| w.respond = respond; | |
| //define update even in native-mq-supporting browsers, to avoid errors | |
| respond.update = function(){}; | |
| //define ajax obj | |
| var requestQueue = [], | |
| xmlHttp = (function() { | |
| var xmlhttpmethod = false; | |
| try { | |
| xmlhttpmethod = new w.XMLHttpRequest(); | |
| } | |
| catch( e ){ | |
| xmlhttpmethod = new w.ActiveXObject( "Microsoft.XMLHTTP" ); | |
| } | |
| return function(){ | |
| return xmlhttpmethod; | |
| }; | |
| })(), | |
| //tweaked Ajax functions from Quirksmode | |
| ajax = function( url, callback ) { | |
| var req = xmlHttp(); | |
| if (!req){ | |
| return; | |
| } | |
| req.open( "GET", url, true ); | |
| req.onreadystatechange = function () { | |
| if ( req.readyState !== 4 || req.status !== 200 && req.status !== 304 ){ | |
| return; | |
| } | |
| callback( req.responseText ); | |
| }; | |
| if ( req.readyState === 4 ){ | |
| return; | |
| } | |
| req.send( null ); | |
| }, | |
| isUnsupportedMediaQuery = function( query ) { | |
| return query.replace( respond.regex.minmaxwh, '' ).match( respond.regex.other ); | |
| }; | |
| //expose for testing | |
| respond.ajax = ajax; | |
| respond.queue = requestQueue; | |
| respond.unsupportedmq = isUnsupportedMediaQuery; | |
| respond.regex = { | |
| media: /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi, | |
| keyframes: /@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi, | |
| comments: /\/\*[^*]*\*+([^/][^*]*\*+)*\//gi, | |
| urls: /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g, | |
| findStyles: /@media *([^\{]+)\{([\S\s]+?)$/, | |
| only: /(only\s+)?([a-zA-Z]+)\s?/, | |
| minw: /\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/, | |
| maxw: /\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/, | |
| minmaxwh: /\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi, | |
| other: /\([^\)]*\)/g | |
| }; | |
| //expose media query support flag for external use | |
| respond.mediaQueriesSupported = w.matchMedia && w.matchMedia( "only all" ) !== null && w.matchMedia( "only all" ).matches; | |
| //if media queries are supported, exit here | |
| if( respond.mediaQueriesSupported ){ | |
| return; | |
| } | |
| //define vars | |
| var doc = w.document, | |
| docElem = doc.documentElement, | |
| mediastyles = [], | |
| rules = [], | |
| appendedEls = [], | |
| parsedSheets = {}, | |
| resizeThrottle = 30, | |
| head = doc.getElementsByTagName( "head" )[0] || docElem, | |
| base = doc.getElementsByTagName( "base" )[0], | |
| links = head.getElementsByTagName( "link" ), | |
| lastCall, | |
| resizeDefer, | |
| //cached container for 1em value, populated the first time it's needed | |
| eminpx, | |
| // returns the value of 1em in pixels | |
| getEmValue = function() { | |
| var ret, | |
| div = doc.createElement('div'), | |
| body = doc.body, | |
| originalHTMLFontSize = docElem.style.fontSize, | |
| originalBodyFontSize = body && body.style.fontSize, | |
| fakeUsed = false; | |
| div.style.cssText = "position:absolute;font-size:1em;width:1em"; | |
| if( !body ){ | |
| body = fakeUsed = doc.createElement( "body" ); | |
| body.style.background = "none"; | |
| } | |
| // 1em in a media query is the value of the default font size of the browser | |
| // reset docElem and body to ensure the correct value is returned | |
| docElem.style.fontSize = "100%"; | |
| body.style.fontSize = "100%"; | |
| body.appendChild( div ); | |
| if( fakeUsed ){ | |
| docElem.insertBefore( body, docElem.firstChild ); | |
| } | |
| ret = div.offsetWidth; | |
| if( fakeUsed ){ | |
| docElem.removeChild( body ); | |
| } | |
| else { | |
| body.removeChild( div ); | |
| } | |
| // restore the original values | |
| docElem.style.fontSize = originalHTMLFontSize; | |
| if( originalBodyFontSize ) { | |
| body.style.fontSize = originalBodyFontSize; | |
| } | |
| //also update eminpx before returning | |
| ret = eminpx = parseFloat(ret); | |
| return ret; | |
| }, | |
| //enable/disable styles | |
| applyMedia = function( fromResize ){ | |
| var name = "clientWidth", | |
| docElemProp = docElem[ name ], | |
| currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp, | |
| styleBlocks = {}, | |
| lastLink = links[ links.length-1 ], | |
| now = (new Date()).getTime(); | |
| //throttle resize calls | |
| if( fromResize && lastCall && now - lastCall < resizeThrottle ){ | |
| w.clearTimeout( resizeDefer ); | |
| resizeDefer = w.setTimeout( applyMedia, resizeThrottle ); | |
| return; | |
| } | |
| else { | |
| lastCall = now; | |
| } | |
| for( var i in mediastyles ){ | |
| if( mediastyles.hasOwnProperty( i ) ){ | |
| var thisstyle = mediastyles[ i ], | |
| min = thisstyle.minw, | |
| max = thisstyle.maxw, | |
| minnull = min === null, | |
| maxnull = max === null, | |
| em = "em"; | |
| if( !!min ){ | |
| min = parseFloat( min ) * ( min.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 ); | |
| } | |
| if( !!max ){ | |
| max = parseFloat( max ) * ( max.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 ); | |
| } | |
| // if there's no media query at all (the () part), or min or max is not null, and if either is present, they're true | |
| if( !thisstyle.hasquery || ( !minnull || !maxnull ) && ( minnull || currWidth >= min ) && ( maxnull || currWidth <= max ) ){ | |
| if( !styleBlocks[ thisstyle.media ] ){ | |
| styleBlocks[ thisstyle.media ] = []; | |
| } | |
| styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] ); | |
| } | |
| } | |
| } | |
| //remove any existing respond style element(s) | |
| for( var j in appendedEls ){ | |
| if( appendedEls.hasOwnProperty( j ) ){ | |
| if( appendedEls[ j ] && appendedEls[ j ].parentNode === head ){ | |
| head.removeChild( appendedEls[ j ] ); | |
| } | |
| } | |
| } | |
| appendedEls.length = 0; | |
| //inject active styles, grouped by media type | |
| for( var k in styleBlocks ){ | |
| if( styleBlocks.hasOwnProperty( k ) ){ | |
| var ss = doc.createElement( "style" ), | |
| css = styleBlocks[ k ].join( "\n" ); | |
| ss.type = "text/css"; | |
| ss.media = k; | |
| //originally, ss was appended to a documentFragment and sheets were appended in bulk. | |
| //this caused crashes in IE in a number of circumstances, such as when the HTML element had a bg image set, so appending beforehand seems best. Thanks to @dvelyk for the initial research on this one! | |
| head.insertBefore( ss, lastLink.nextSibling ); | |
| if ( ss.styleSheet ){ | |
| ss.styleSheet.cssText = css; | |
| } | |
| else { | |
| ss.appendChild( doc.createTextNode( css ) ); | |
| } | |
| //push to appendedEls to track for later removal | |
| appendedEls.push( ss ); | |
| } | |
| } | |
| }, | |
| //find media blocks in css text, convert to style blocks | |
| translate = function( styles, href, media ){ | |
| var qs = styles.replace( respond.regex.comments, '' ) | |
| .replace( respond.regex.keyframes, '' ) | |
| .match( respond.regex.media ), | |
| ql = qs && qs.length || 0; | |
| //try to get CSS path | |
| href = href.substring( 0, href.lastIndexOf( "/" ) ); | |
| var repUrls = function( css ){ | |
| return css.replace( respond.regex.urls, "$1" + href + "$2$3" ); | |
| }, | |
| useMedia = !ql && media; | |
| //if path exists, tack on trailing slash | |
| if( href.length ){ href += "/"; } | |
| //if no internal queries exist, but media attr does, use that | |
| //note: this currently lacks support for situations where a media attr is specified on a link AND | |
| //its associated stylesheet has internal CSS media queries. | |
| //In those cases, the media attribute will currently be ignored. | |
| if( useMedia ){ | |
| ql = 1; | |
| } | |
| for( var i = 0; i < ql; i++ ){ | |
| var fullq, thisq, eachq, eql; | |
| //media attr | |
| if( useMedia ){ | |
| fullq = media; | |
| rules.push( repUrls( styles ) ); | |
| } | |
| //parse for styles | |
| else{ | |
| fullq = qs[ i ].match( respond.regex.findStyles ) && RegExp.$1; | |
| rules.push( RegExp.$2 && repUrls( RegExp.$2 ) ); | |
| } | |
| eachq = fullq.split( "," ); | |
| eql = eachq.length; | |
| for( var j = 0; j < eql; j++ ){ | |
| thisq = eachq[ j ]; | |
| if( isUnsupportedMediaQuery( thisq ) ) { | |
| continue; | |
| } | |
| mediastyles.push( { | |
| media : thisq.split( "(" )[ 0 ].match( respond.regex.only ) && RegExp.$2 || "all", | |
| rules : rules.length - 1, | |
| hasquery : thisq.indexOf("(") > -1, | |
| minw : thisq.match( respond.regex.minw ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ), | |
| maxw : thisq.match( respond.regex.maxw ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ) | |
| } ); | |
| } | |
| } | |
| applyMedia(); | |
| }, | |
| //recurse through request queue, get css text | |
| makeRequests = function(){ | |
| if( requestQueue.length ){ | |
| var thisRequest = requestQueue.shift(); | |
| ajax( thisRequest.href, function( styles ){ | |
| translate( styles, thisRequest.href, thisRequest.media ); | |
| parsedSheets[ thisRequest.href ] = true; | |
| // by wrapping recursive function call in setTimeout | |
| // we prevent "Stack overflow" error in IE7 | |
| w.setTimeout(function(){ makeRequests(); },0); | |
| } ); | |
| } | |
| }, | |
| //loop stylesheets, send text content to translate | |
| ripCSS = function(){ | |
| for( var i = 0; i < links.length; i++ ){ | |
| var sheet = links[ i ], | |
| href = sheet.href, | |
| media = sheet.media, | |
| isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet"; | |
| //only links plz and prevent re-parsing | |
| if( !!href && isCSS && !parsedSheets[ href ] ){ | |
| // selectivizr exposes css through the rawCssText expando | |
| if (sheet.styleSheet && sheet.styleSheet.rawCssText) { | |
| translate( sheet.styleSheet.rawCssText, href, media ); | |
| parsedSheets[ href ] = true; | |
| } else { | |
| if( (!/^([a-zA-Z:]*\/\/)/.test( href ) && !base) || | |
| href.replace( RegExp.$1, "" ).split( "/" )[0] === w.location.host ){ | |
| // IE7 doesn't handle urls that start with '//' for ajax request | |
| // manually add in the protocol | |
| if ( href.substring(0,2) === "//" ) { href = w.location.protocol + href; } | |
| requestQueue.push( { | |
| href: href, | |
| media: media | |
| } ); | |
| } | |
| } | |
| } | |
| } | |
| makeRequests(); | |
| }; | |
| //translate CSS | |
| ripCSS(); | |
| //expose update for re-running respond later on | |
| respond.update = ripCSS; | |
| //expose getEmValue | |
| respond.getEmValue = getEmValue; | |
| //adjust on resize | |
| function callMedia(){ | |
| applyMedia( true ); | |
| } | |
| if( w.addEventListener ){ | |
| w.addEventListener( "resize", callMedia, false ); | |
| } | |
| else if( w.attachEvent ){ | |
| w.attachEvent( "onresize", callMedia ); | |
| } | |
| })(this); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /*! normalize.css v1.0.1 | MIT License | git.io/normalize */ | |
| article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block} | |
| audio,canvas,video{display:inline-block;*display:inline;*zoom:1} | |
| audio:not([controls]){display:none;height:0} | |
| [hidden]{display:none} | |
| html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%} | |
| html,button,input,select,textarea{font-family:sans-serif} | |
| body{margin:0} | |
| a:focus{outline:thin dotted} | |
| a:active,a:hover{outline:0} | |
| h1{font-size:2em;margin:.67em 0} | |
| h2{font-size:1.5em;margin:.83em 0} | |
| h3{font-size:1.17em;margin:1em 0} | |
| h4{font-size:1em;margin:1.33em 0} | |
| h5{font-size:.83em;margin:1.67em 0} | |
| h6{font-size:.75em;margin:2.33em 0} | |
| abbr[title]{border-bottom:1px dotted} | |
| b,strong{font-weight:bold} | |
| blockquote{margin:1em 40px} | |
| dfn{font-style:italic} | |
| mark{background:#ff0;color:#000} | |
| p,pre{margin:1em 0} | |
| code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em} | |
| pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word} | |
| q{quotes:none} | |
| q:before,q:after{content:'';content:none} | |
| small{font-size:80%} | |
| sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} | |
| sup{top:-0.5em} | |
| sub{bottom:-0.25em} | |
| dl,menu,ol,ul{margin:1em 0} | |
| dd{margin:0 0 0 40px} | |
| menu,ol,ul{padding:0 0 0 40px} | |
| nav ul,nav ol{list-style:none;list-style-image:none} | |
| img{border:0;-ms-interpolation-mode:bicubic} | |
| svg:not(:root){overflow:hidden} | |
| figure{margin:0} | |
| form{margin:0} | |
| fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em} | |
| legend{border:0;padding:0;white-space:normal;*margin-left:-7px} | |
| button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle} | |
| button,input{line-height:normal} | |
| button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible} | |
| button[disabled],input[disabled]{cursor:default} | |
| input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px} | |
| input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box} | |
| input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none} | |
| button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0} | |
| textarea{overflow:auto;vertical-align:top} | |
| table{border-collapse:collapse;border-spacing:0} | |
| /* ========================================================================== | |
| HTML5 Boilerplate styles - h5bp.com (generated via initializr.com) | |
| ========================================================================== */ | |
| html, | |
| button, | |
| input, | |
| select, | |
| textarea { | |
| color: #222; | |
| } | |
| body { | |
| font-size: 1em; | |
| line-height: 1.4; | |
| } | |
| ::-moz-selection { | |
| background: #b3d4fc; | |
| text-shadow: none; | |
| } | |
| ::selection { | |
| background: #b3d4fc; | |
| text-shadow: none; | |
| } | |
| hr { | |
| display: block; | |
| height: 1px; | |
| border: 0; | |
| border-top: 1px solid #ccc; | |
| margin: 1em 0; | |
| padding: 0; | |
| } | |
| img { | |
| vertical-align: middle; | |
| } | |
| fieldset { | |
| border: 0; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| textarea { | |
| resize: vertical; | |
| } | |
| .chromeframe { | |
| margin: 0.2em 0; | |
| background: #ccc; | |
| color: #000; | |
| padding: 0.2em 0; | |
| } | |
| /* ===== Initializr Styles ================================================== | |
| Author: Jonathan Verrecchia - verekia.com/initializr/responsive-template | |
| ========================================================================== */ | |
| body { | |
| font: 16px/26px Helvetica, Helvetica Neue, Arial; | |
| } | |
| .wrapper { | |
| width: 90%; | |
| margin: 0 5%; | |
| } | |
| /* =================== | |
| ALL: Orange Theme | |
| =================== */ | |
| .header-container { | |
| border-bottom: 20px solid #e44d26; | |
| } | |
| .footer-container, | |
| .main aside { | |
| border-top: 20px solid #e44d26; | |
| } | |
| .header-container, | |
| .footer-container, | |
| .main aside { | |
| background: #f16529; | |
| } | |
| .title { | |
| color: white; | |
| } | |
| /* ============== | |
| MOBILE: Menu | |
| ============== */ | |
| nav ul { | |
| margin: 0; | |
| padding: 0; | |
| } | |
| nav a { | |
| display: block; | |
| margin-bottom: 10px; | |
| padding: 15px 0; | |
| text-align: center; | |
| text-decoration: none; | |
| font-weight: bold; | |
| color: white; | |
| background: #e44d26; | |
| } | |
| nav a:hover, | |
| nav a:visited { | |
| color: white; | |
| } | |
| nav a:hover { | |
| text-decoration: underline; | |
| } | |
| /* ============== | |
| MOBILE: Main | |
| ============== */ | |
| .main { | |
| padding: 30px 0; | |
| } | |
| .main article h1 { | |
| font-size: 2em; | |
| } | |
| .main aside { | |
| color: white; | |
| padding: 0px 5% 10px; | |
| } | |
| .footer-container footer { | |
| color: white; | |
| padding: 20px 0; | |
| } | |
| /* =============== | |
| ALL: IE Fixes | |
| =============== */ | |
| .ie7 .title { | |
| padding-top: 20px; | |
| } | |
| /* ========================================================================== | |
| Author's custom styles | |
| ========================================================================== */ | |
| /* ========================================================================== | |
| Media Queries | |
| ========================================================================== */ | |
| @media only screen and (min-width: 480px) { | |
| /* ==================== | |
| INTERMEDIATE: Menu | |
| ==================== */ | |
| nav a { | |
| float: left; | |
| width: 27%; | |
| margin: 0 1.7%; | |
| padding: 25px 2%; | |
| margin-bottom: 0; | |
| } | |
| nav li:first-child a { | |
| margin-left: 0; | |
| } | |
| nav li:last-child a { | |
| margin-right: 0; | |
| } | |
| /* ======================== | |
| INTERMEDIATE: IE Fixes | |
| ======================== */ | |
| nav ul li { | |
| display: inline; | |
| } | |
| .oldie nav a { | |
| margin: 0 0.7%; | |
| } | |
| } | |
| @media only screen and (min-width: 768px) { | |
| /* ==================== | |
| WIDE: CSS3 Effects | |
| ==================== */ | |
| .header-container, | |
| .main aside { | |
| -webkit-box-shadow: 0 5px 10px #aaa; | |
| -moz-box-shadow: 0 5px 10px #aaa; | |
| box-shadow: 0 5px 10px #aaa; | |
| } | |
| /* ============ | |
| WIDE: Menu | |
| ============ */ | |
| .title { | |
| float: left; | |
| } | |
| nav { | |
| float: right; | |
| width: 38%; | |
| } | |
| /* ============ | |
| WIDE: Main | |
| ============ */ | |
| .main article { | |
| float: left; | |
| width: 57%; | |
| } | |
| .main aside { | |
| float: right; | |
| width: 28%; | |
| } | |
| } | |
| @media only screen and (min-width: 1140px) { | |
| /* =============== | |
| Maximal Width | |
| =============== */ | |
| .wrapper { | |
| width: 1026px; /* 1140px - 10% for margins */ | |
| margin: 0 auto; | |
| } | |
| } | |
| /* ========================================================================== | |
| Helper classes | |
| ========================================================================== */ | |
| .ir { | |
| background-color: transparent; | |
| border: 0; | |
| overflow: hidden; | |
| *text-indent: -9999px; | |
| } | |
| .ir:before { | |
| content: ""; | |
| display: block; | |
| width: 0; | |
| height: 100%; | |
| } | |
| .hidden { | |
| display: none !important; | |
| visibility: hidden; | |
| } | |
| .visuallyhidden { | |
| border: 0; | |
| clip: rect(0 0 0 0); | |
| height: 1px; | |
| margin: -1px; | |
| overflow: hidden; | |
| padding: 0; | |
| position: absolute; | |
| width: 1px; | |
| } | |
| .visuallyhidden.focusable:active, | |
| .visuallyhidden.focusable:focus { | |
| clip: auto; | |
| height: auto; | |
| margin: 0; | |
| overflow: visible; | |
| position: static; | |
| width: auto; | |
| } | |
| .invisible { | |
| visibility: hidden; | |
| } | |
| .clearfix:before, | |
| .clearfix:after { | |
| content: " "; | |
| display: table; | |
| } | |
| .clearfix:after { | |
| clear: both; | |
| } | |
| .clearfix { | |
| *zoom: 1; | |
| } | |
| /* ========================================================================== | |
| Print styles | |
| ========================================================================== */ | |
| @media print { | |
| * { | |
| background: transparent !important; | |
| color: #000 !important; /* Black prints faster: h5bp.com/s */ | |
| box-shadow:none !important; | |
| text-shadow: none !important; | |
| } | |
| a, | |
| a:visited { | |
| text-decoration: underline; | |
| } | |
| a[href]:after { | |
| content: " (" attr(href) ")"; | |
| } | |
| abbr[title]:after { | |
| content: " (" attr(title) ")"; | |
| } | |
| /* | |
| * Don't show links for images, or javascript/internal links | |
| */ | |
| .ir a:after, | |
| a[href^="javascript:"]:after, | |
| a[href^="#"]:after { | |
| content: ""; | |
| } | |
| pre, | |
| blockquote { | |
| border: 1px solid #999; | |
| page-break-inside: avoid; | |
| } | |
| thead { | |
| display: table-header-group; /* h5bp.com/t */ | |
| } | |
| tr, | |
| img { | |
| page-break-inside: avoid; | |
| } | |
| img { | |
| max-width: 100% !important; | |
| } | |
| @page { | |
| margin: 0.5cm; | |
| } | |
| p, | |
| h2, | |
| h3 { | |
| orphans: 3; | |
| widows: 3; | |
| } | |
| h2, | |
| h3 { | |
| page-break-after: avoid; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment