From b45cb52fad4a4d007ea4f3f2c729da9df118775f Mon Sep 17 00:00:00 2001 From: Ian Armstrong Date: Wed, 3 Dec 2014 11:09:19 -0800 Subject: [PATCH 1/8] Added support for IE11 (43) and Win 8.1 (111) --- .gitignore | 3 +- css_browser_selector_dev.js | 82 +++++++++++++++++++------------------ 2 files changed, 44 insertions(+), 41 deletions(-) diff --git a/.gitignore b/.gitignore index 496ee2c..af56f61 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.DS_Store \ No newline at end of file +.DS_Store +.idea/ diff --git a/css_browser_selector_dev.js b/css_browser_selector_dev.js index 3fddee5..ec3c9d9 100644 --- a/css_browser_selector_dev.js +++ b/css_browser_selector_dev.js @@ -19,11 +19,11 @@ function css_browser_selector(u) allScreens = screens.length, ua=u.toLowerCase(), is=function(t) { return RegExp(t,"i").test(ua); }, - version = function(p,n) - { - n=n.replace(".","_"); var i = n.indexOf('_'), ver=""; - while (i>0) {ver += " "+ p+n.substring(0,i);i = n.indexOf('_', i+1);} - ver += " "+p+n; return ver; + version = function(p,n) + { + n=n.replace(".","_"); var i = n.indexOf('_'), ver=""; + while (i>0) {ver += " "+ p+n.substring(0,i);i = n.indexOf('_', i+1);} + ver += " "+p+n; return ver; }, g='gecko', w='webkit', @@ -38,25 +38,26 @@ function css_browser_selector(u) dv='device_', html=document.documentElement, b= [ - + // browser - (!(/opera|webtv/i.test(ua))&&/msie\s(\d+)/.test(ua))?('ie ie'+(/trident\/4\.0/.test(ua) ? '8' : RegExp.$1)) - :is('firefox/')?g+ " " + f+(/firefox\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua)?' '+f+RegExp.$2 + ' '+f+RegExp.$2+"_"+RegExp.$4:'') + (!(/opera|webtv/i.test(ua))&&!(/msie\s(\d+)/.test(ua))&&(/trident/.test(ua)))?'ie11': + (!(/opera|webtv/i.test(ua))&&/msie\s(\d+)/.test(ua))?('ie ie'+(/trident\/4\.0/.test(ua) ? '8' : RegExp.$1)) + :is('firefox/')?g+ " " + f+(/firefox\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua)?' '+f+RegExp.$2 + ' '+f+RegExp.$2+"_"+RegExp.$4:'') :is('gecko/')?g :is('opera')?o+(/version\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua)?' '+o+RegExp.$2 + ' '+o+RegExp.$2+"_"+RegExp.$4 : (/opera(\s|\/)(\d+)\.(\d+)/.test(ua)?' '+o+RegExp.$2+" "+o+RegExp.$2+"_"+RegExp.$3:'')) :is('konqueror')?'konqueror' - - :is('blackberry') ? - ( bb + + + :is('blackberry') ? + ( bb + ( /Version\/(\d+)(\.(\d+)+)/i.test(ua) ? " " + bb+ RegExp.$1 + " "+bb+ RegExp.$1+RegExp.$2.replace('.','_') - : (/Blackberry ?(([0-9]+)([a-z]?))[\/|;]/gi.test(ua) + : (/Blackberry ?(([0-9]+)([a-z]?))[\/|;]/gi.test(ua) ? ' ' +bb+RegExp.$2 + (RegExp.$3?' ' +bb+RegExp.$2+RegExp.$3:'') : '') ) ) // blackberry - - :is('android') ? + + :is('android') ? ( a + ( /Version\/(\d+)(\.(\d+))+/i.test(ua) ? " " + a+ RegExp.$1 + " "+a+ RegExp.$1+RegExp.$2.replace('.','_') @@ -65,36 +66,36 @@ function css_browser_selector(u) ? ' '+dv+( (RegExp.$2).replace(/ /g,"_") ).replace(/-/g,"_") :'' ) ) //android - - :is('chrome')?w+ ' '+c+(/chrome\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua)?' '+c+RegExp.$2 +((RegExp.$4>0) ? ' '+c+RegExp.$2+"_"+RegExp.$4:''):'') - + + :is('chrome')?w+ ' '+c+(/chrome\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua)?' '+c+RegExp.$2 +((RegExp.$4>0) ? ' '+c+RegExp.$2+"_"+RegExp.$4:''):'') + :is('iron')?w+' iron' - - :is('applewebkit/') ? - ( w+ ' '+ s + + + :is('applewebkit/') ? + ( w+ ' '+ s + ( /version\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua) ? ' '+ s +RegExp.$2 + " "+s+ RegExp.$2+RegExp.$3.replace('.','_') - : ( / Safari\/(\d+)/i.test(ua) - ? - ( (RegExp.$1=="419" || RegExp.$1=="417" || RegExp.$1=="416" || RegExp.$1=="412" ) ? ' '+ s + '2_0' + : ( / Safari\/(\d+)/i.test(ua) + ? + ( (RegExp.$1=="419" || RegExp.$1=="417" || RegExp.$1=="416" || RegExp.$1=="412" ) ? ' '+ s + '2_0' : RegExp.$1=="312" ? ' '+ s + '1_3' : RegExp.$1=="125" ? ' '+ s + '1_2' : RegExp.$1=="85" ? ' '+ s + '1_0' : '' ) :'') ) - ) //applewebkit - + ) //applewebkit + :is('mozilla/')?g :'' - + // mobile ,is("android|mobi|mobile|j2me|iphone|ipod|ipad|blackberry|playbook|kindle|silk")?m:'' - + // os/platform ,is('j2me')?'j2me' - :is('ipad|ipod|iphone')? - ( + :is('ipad|ipod|iphone')? + ( ( /CPU( iPhone)? OS (\d+[_|\.]\d+([_|\.]\d+)*)/i.test(ua) ? 'ios' + version('ios',RegExp.$2) : '' @@ -107,28 +108,29 @@ function css_browser_selector(u) :is('playbook')?'playbook' :is('mac')?'mac'+ (/mac os x ((\d+)[.|_](\d+))/.test(ua) ? ( ' mac' + (RegExp.$2) + ' mac' + (RegExp.$1).replace('.',"_") ) : '' ) :is('win')?'win'+ - (is('windows nt 6.2')?' win8' + (is('windows nt 6.3')?' win8.1' + :is('windows nt 6.2')?' win8' :is('windows nt 6.1')?' win7' :is('windows nt 6.0')?' vista' - :is('windows nt 5.2') || is('windows nt 5.1') ? ' win_xp' + :is('windows nt 5.2') || is('windows nt 5.1') ? ' win_xp' :is('windows nt 5.0')?' win_2k' :is('windows nt 4.0') || is('WinNT4.0') ?' win_nt' : '' - ) + ) :is('freebsd')?'freebsd' :(is('x11|linux'))?'linux' :'' - + // user agent language ,(/[; |\[](([a-z]{2})(\-[a-z]{2})?)[)|;|\]]/i.test(ua))?(lang+RegExp.$2).replace("-","_")+(RegExp.$3!=''?(' '+lang+RegExp.$1).replace("-","_"):''):'' - + // beta: test if running iPad app ,( is('ipad|iphone|ipod') && !is('safari') ) ? 'ipad_app' : '' - - + + ]; // b - function screenSize() + function screenSize() { var w = window.outerWidth || html.clientWidth; var h = window.outerHeight || html.clientHeight; @@ -141,16 +143,16 @@ function css_browser_selector(u) html.className = ( html.className +widthClasses ); return widthClasses; } // screenSize - + window.onresize = screenSize; - screenSize(); + screenSize(); var cssbs = (b.join(' ')) + " js "; html.className = ( cssbs + html.className.replace(/\b(no[-|_]?)?js\b/g,"") ).replace(/^ /, "").replace(/ +/g," "); return cssbs; } - + css_browser_selector(navigator.userAgent); From 5e72724b067e05f61f6185e9412ba28554a8ab95 Mon Sep 17 00:00:00 2001 From: Ian Armstrong Date: Wed, 3 Dec 2014 12:53:58 -0800 Subject: [PATCH 2/8] Added support for additional IE versions, added a tester page. Moved Chrome up in the class list. --- css_browser_selector_dev.js | 9 ++-- index.php | 91 +++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 index.php diff --git a/css_browser_selector_dev.js b/css_browser_selector_dev.js index ec3c9d9..bf39e8b 100644 --- a/css_browser_selector_dev.js +++ b/css_browser_selector_dev.js @@ -40,9 +40,12 @@ function css_browser_selector(u) b= [ // browser - (!(/opera|webtv/i.test(ua))&&!(/msie\s(\d+)/.test(ua))&&(/trident/.test(ua)))?'ie11': - (!(/opera|webtv/i.test(ua))&&/msie\s(\d+)/.test(ua))?('ie ie'+(/trident\/4\.0/.test(ua) ? '8' : RegExp.$1)) + (!(/opera|webtv/i.test(ua))&&/msie\s(\d+)/.test(ua))?('ie ie'+(/trident\/7\.0/.test(ua) ? '11' : RegExp.$1)) + :is (!(/opera|webtv/i.test(ua))&&/msie\s(\d+)/.test(ua))?('ie ie'+(/trident\/6\.0/.test(ua) ? '10' : RegExp.$1)) + :is (!(/opera|webtv/i.test(ua))&&/msie\s(\d+)/.test(ua))?('ie ie'+(/trident\/5\.0/.test(ua) ? '9' : RegExp.$1)) + :is (!(/opera|webtv/i.test(ua))&&/msie\s(\d+)/.test(ua))?('ie ie'+(/trident\/4\.0/.test(ua) ? '8' : RegExp.$1)) :is('firefox/')?g+ " " + f+(/firefox\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua)?' '+f+RegExp.$2 + ' '+f+RegExp.$2+"_"+RegExp.$4:'') + :is('chrome')?w+ ' '+c+(/chrome\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua)?' '+c+RegExp.$2 +((RegExp.$4>0) ? ' '+c+RegExp.$2+"_"+RegExp.$4:''):'') :is('gecko/')?g :is('opera')?o+(/version\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua)?' '+o+RegExp.$2 + ' '+o+RegExp.$2+"_"+RegExp.$4 : (/opera(\s|\/)(\d+)\.(\d+)/.test(ua)?' '+o+RegExp.$2+" "+o+RegExp.$2+"_"+RegExp.$3:'')) :is('konqueror')?'konqueror' @@ -67,8 +70,6 @@ function css_browser_selector(u) :'' ) ) //android - :is('chrome')?w+ ' '+c+(/chrome\/((\d+)(\.(\d+))(\.\d+)*)/.test(ua)?' '+c+RegExp.$2 +((RegExp.$4>0) ? ' '+c+RegExp.$2+"_"+RegExp.$4:''):'') - :is('iron')?w+' iron' :is('applewebkit/') ? diff --git a/index.php b/index.php new file mode 100644 index 0000000..9b39e2a --- /dev/null +++ b/index.php @@ -0,0 +1,91 @@ + + + + + Browser Selector Test + + + + +
+

This page is designed to test the browser detection script

+ +

USER AGENT STRING:

+ +
+
    +
  • Legend
  • +
  • IE
  • +
  • IE7
  • +
  • Gecko
  • +
  • Windows Gecko
  • +
  • Linux Gecko
  • +
  • Opera Gecko
  • +
  • Konqueror
  • +
  • Webkit
  • +
  • Chrome
  • +
+
+ +
+
    +
  • List of classes applied

  • +
+
+
+ + + + + + + + + \ No newline at end of file From 19849b17f63ee13feeef7d0df1a50624061a55db Mon Sep 17 00:00:00 2001 From: Ian Armstrong Date: Wed, 3 Dec 2014 13:03:33 -0800 Subject: [PATCH 3/8] Beefed up demo page a bit --- index.php | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/index.php b/index.php index 9b39e2a..d0e2211 100644 --- a/index.php +++ b/index.php @@ -15,14 +15,19 @@ background: rgb(250,250,250); } li.ie, .ie .detected { background-color: yellow; } - li.ie7, .ie7 .detected { background-color: orange } - li.gecko, .gecko .detected { background-color: gray; } - li.win.gecko, .win.gecko .detected { background-color: red; } + li.ie6, .ie6 .detected { background-color: #8a6200 } + li.ie7, .ie7 .detected { background-color: #9c6d00 } + li.ie8, .ie8 .detected { background-color: #b78100 } + li.ie9, .ie9 .detected { background-color: #c68800 } + li.ie10, .ie10 .detected { background-color: #dd9e00 } + li.ie11, .ie11 .detected { background-color: #ffb935 } + li.gecko, .gecko .detected { background-color: #929292; } + li.win.gecko, .win.gecko .detected { background-color: #ff3b49; } li.linux, .linux.gecko .detected { background-color: pink; } - li.opera, .opera .detected { background-color: green; } - li.konqueror, .konqueror .detected { background-color: blue; } + li.opera, .opera .detected { background-color: #28a324; } + li.konqueror, .konqueror .detected { background-color: #5760ff; } li.webkit, .webkit .detected { background-color: rgb(149, 61, 245); } - li.chrome, .chrome .detected { background-color: cyan; } + li.chrome, .chrome .detected { background-color: #74ffbe; } .detected { display: inline-block; padding: 2px 10px; @@ -41,7 +46,7 @@
-

This page is designed to test the browser detection script

+

Information on this browser

USER AGENT STRING:

@@ -49,7 +54,12 @@
  • Legend
  • IE
  • +
  • IE6
  • IE7
  • +
  • IE8
  • +
  • IE9 (Max for WinXP)
  • +
  • IE10
  • +
  • IE11
  • Gecko
  • Windows Gecko
  • Linux Gecko
  • From 72bd48c83ccddd503a09b56a73ede15ad339a481 Mon Sep 17 00:00:00 2001 From: Ian Armstrong Date: Wed, 3 Dec 2014 13:08:53 -0800 Subject: [PATCH 4/8] Minified dev to production JS, updated demo, updated author information for this fork, versioned up to 0.7 --- css_browser_selector.js | 17 ++++++++++------- css_browser_selector_dev.js | 8 ++++---- index.php | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/css_browser_selector.js b/css_browser_selector.js index 0668aa7..d85bb5b 100644 --- a/css_browser_selector.js +++ b/css_browser_selector.js @@ -1,8 +1,11 @@ /* -CSS Browser Selector v0.4.0 (Nov 02, 2010) -Rafael Lima (http://rafael.adm.br) -http://rafael.adm.br/css_browser_selector -License: http://creativecommons.org/licenses/by/2.5/ -Contributors: http://rafael.adm.br/css_browser_selector#contributors -*/ -function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent); + CSS Browser Selector (revived) 0.7 + Originally written by Rafael Lima (http://rafael.adm.br) + http://rafael.adm.br/css_browser_selector + Modified by Ian Armstrong (http://imperativeideas.com) + License: http://creativecommons.org/licenses/by/2.5/ + + Forked Repo: + https://github.com/isarmstrong/css_browser_selector + */ +function log(e){window.console&&showLog&&console.log(e)}function css_browser_selector(e){function i(){var e=window.outerWidth||m.clientWidth,i=window.outerHeight||m.clientHeight;t.orientation=i>e?"portrait":"landscape",m.className=m.className.replace(/ ?orientation_\w+/g,"").replace(/ [min|max|cl]+[w|h]_\d+/g,"");for(var n=s-1;n>=0;n--)if(e>=o[n]){t.maxw=o[n];break}widthClasses="";for(var r in t)widthClasses+=" "+r+"_"+t[r];return m.className=m.className+widthClasses,widthClasses}var t={},o=[320,480,640,768,1024,1152,1280,1440,1680,1920,2560],s=o.length,n=e.toLowerCase(),r=function(e){return RegExp(e,"i").test(n)},a=function(e,i){i=i.replace(".","_");for(var t=i.indexOf("_"),o="";t>0;)o+=" "+e+i.substring(0,t),t=i.indexOf("_",t+1);return o+=" "+e+i},p="gecko",d="webkit",g="chrome",l="firefox",x="safari",c="opera",w="mobile",E="android",R="blackberry",$="lang_",_="device_",m=document.documentElement,b=[!/opera|webtv/i.test(n)&&/msie\s(\d+)/.test(n)?"ie ie"+(/trident\/7\.0/.test(n)?"11":RegExp.$1):r(!/opera|webtv/i.test(n)&&/msie\s(\d+)/.test(n))?"ie ie"+(/trident\/6\.0/.test(n)?"10":RegExp.$1):r(!/opera|webtv/i.test(n)&&/msie\s(\d+)/.test(n))?"ie ie"+(/trident\/5\.0/.test(n)?"9":RegExp.$1):r(!/opera|webtv/i.test(n)&&/msie\s(\d+)/.test(n))?"ie ie"+(/trident\/4\.0/.test(n)?"8":RegExp.$1):r("firefox/")?p+" "+l+(/firefox\/((\d+)(\.(\d+))(\.\d+)*)/.test(n)?" "+l+RegExp.$2+" "+l+RegExp.$2+"_"+RegExp.$4:""):r("chrome")?d+" "+g+(/chrome\/((\d+)(\.(\d+))(\.\d+)*)/.test(n)?" "+g+RegExp.$2+(RegExp.$4>0?" "+g+RegExp.$2+"_"+RegExp.$4:""):""):r("gecko/")?p:r("opera")?c+(/version\/((\d+)(\.(\d+))(\.\d+)*)/.test(n)?" "+c+RegExp.$2+" "+c+RegExp.$2+"_"+RegExp.$4:/opera(\s|\/)(\d+)\.(\d+)/.test(n)?" "+c+RegExp.$2+" "+c+RegExp.$2+"_"+RegExp.$3:""):r("konqueror")?"konqueror":r("blackberry")?R+(/Version\/(\d+)(\.(\d+)+)/i.test(n)?" "+R+RegExp.$1+" "+R+RegExp.$1+RegExp.$2.replace(".","_"):/Blackberry ?(([0-9]+)([a-z]?))[\/|;]/gi.test(n)?" "+R+RegExp.$2+(RegExp.$3?" "+R+RegExp.$2+RegExp.$3:""):""):r("android")?E+(/Version\/(\d+)(\.(\d+))+/i.test(n)?" "+E+RegExp.$1+" "+E+RegExp.$1+RegExp.$2.replace(".","_"):"")+(/Android (.+); (.+) Build/i.test(n)?" "+_+RegExp.$2.replace(/ /g,"_").replace(/-/g,"_"):""):r("iron")?d+" iron":r("applewebkit/")?d+" "+x+(/version\/((\d+)(\.(\d+))(\.\d+)*)/.test(n)?" "+x+RegExp.$2+" "+x+RegExp.$2+RegExp.$3.replace(".","_"):/ Safari\/(\d+)/i.test(n)?"419"==RegExp.$1||"417"==RegExp.$1||"416"==RegExp.$1||"412"==RegExp.$1?" "+x+"2_0":"312"==RegExp.$1?" "+x+"1_3":"125"==RegExp.$1?" "+x+"1_2":"85"==RegExp.$1?" "+x+"1_0":"":""):r("mozilla/")?p:"",r("android|mobi|mobile|j2me|iphone|ipod|ipad|blackberry|playbook|kindle|silk")?w:"",r("j2me")?"j2me":r("ipad|ipod|iphone")?(/CPU( iPhone)? OS (\d+[_|\.]\d+([_|\.]\d+)*)/i.test(n)?"ios"+a("ios",RegExp.$2):"")+" "+(/(ip(ad|od|hone))/gi.test(n)?RegExp.$1:""):r("playbook")?"playbook":r("kindle|silk")?"kindle":r("playbook")?"playbook":r("mac")?"mac"+(/mac os x ((\d+)[.|_](\d+))/.test(n)?" mac"+RegExp.$2+" mac"+RegExp.$1.replace(".","_"):""):r("win")?"win"+(r("windows nt 6.3")?" win8.1":r("windows nt 6.2")?" win8":r("windows nt 6.1")?" win7":r("windows nt 6.0")?" vista":r("windows nt 5.2")||r("windows nt 5.1")?" win_xp":r("windows nt 5.0")?" win_2k":r("windows nt 4.0")||r("WinNT4.0")?" win_nt":""):r("freebsd")?"freebsd":r("x11|linux")?"linux":"",/[; |\[](([a-z]{2})(\-[a-z]{2})?)[)|;|\]]/i.test(n)?($+RegExp.$2).replace("-","_")+(""!=RegExp.$3?(" "+$+RegExp.$1).replace("-","_"):""):"",r("ipad|iphone|ipod")&&!r("safari")?"ipad_app":""];window.onresize=i,i();var f=b.join(" ")+" js ";return m.className=(f+m.className.replace(/\b(no[-|_]?)?js\b/g,"")).replace(/^ /,"").replace(/ +/g," "),f}showLog=!0,css_browser_selector(navigator.userAgent); \ No newline at end of file diff --git a/css_browser_selector_dev.js b/css_browser_selector_dev.js index bf39e8b..8925249 100644 --- a/css_browser_selector_dev.js +++ b/css_browser_selector_dev.js @@ -1,12 +1,12 @@ /* -CSS Browser Selector 0.6.1 +CSS Browser Selector (revived) 0.7 Originally written by Rafael Lima (http://rafael.adm.br) http://rafael.adm.br/css_browser_selector +Modified by Ian Armstrong (http://imperativeideas.com) License: http://creativecommons.org/licenses/by/2.5/ -Co-maintained by: -https://github.com/verbatim/css_browser_selector - +Forked Repo: +https://github.com/isarmstrong/css_browser_selector */ showLog=true; diff --git a/index.php b/index.php index d0e2211..11ac71c 100644 --- a/index.php +++ b/index.php @@ -79,7 +79,7 @@ - + From 32eb4a71a4c196aef940f2bc47084a153d6e4aab Mon Sep 17 00:00:00 2001 From: Ian Armstrong Date: Wed, 3 Dec 2014 13:22:37 -0800 Subject: [PATCH 6/8] Updated ReadMe for this fork --- README.mkdn | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/README.mkdn b/README.mkdn index ff6ebc5..2f00513 100644 --- a/README.mkdn +++ b/README.mkdn @@ -8,27 +8,37 @@ CSS Browser Selector is a very small javascript which empowers CSS selectors. Identifies
    browsers: Firefox; IE; Opera; Safari; Chrome, Konqueror, Iron -
    browser versions: (most importantly: ie6, ie7, ie8, ie9) +
    browser versions: (most importantly: ie6, ie7, ie8, ie9, ie10, ie11)
    rendering engines: Webkit; Mozilla; Gecko -
    platforms/OSes: Mac; Win: Win8, Win7, Vista, WinXP, Win2k, WinNT; FreeBSD; Linux/x11 +
    platforms/OSes: Mac; Win: Win8.1, Win8, Win7, Vista, WinXP, Win2k, WinNT; FreeBSD; Linux/x11
    devices: Ipod; Ipad; Iphone; WebTV; Blackberry; Android; J2me; RIM Playbook; mobile (generic)
    enabled technology: JS (use in conjunction with <html class="no-js"> for even more granular control)
    language detection -Recent contributors to 0.5, 0.6: +Recent contributors to 0.5, 0.6, 0.7: more detailed IE detection:
    https://github.com/kevingessner/css_browser_selector/ +modernized IE detection: +https://github.com/isarmstrong/css_browser_selector + more detailed WIN detection:
    https://github.com/saar/css_browser_selector +updated WIN detection +https://github.com/isarmstrong/css_browser_selector + no-js to js:
    paul irish: http://paulirish.com/2009/avoiding-the-fouc-v3/ mac versioning
    https://github.com/haraldmartin/css_browser_selector +v0.7 2014-12-3 +
    Modern IE detection +
    Support for Windows 8.1 +
    Added an in-project demo page v0.6.1 2012-03-14
    iOS version detection From bc1f8f6b758fcc3825f828de31d661cd8b53f034 Mon Sep 17 00:00:00 2001 From: Ian Armstrong Date: Wed, 3 Dec 2014 13:24:00 -0800 Subject: [PATCH 7/8] Forgot to add myself on the recent contributors line! --- README.mkdn | 1 + 1 file changed, 1 insertion(+) diff --git a/README.mkdn b/README.mkdn index 2f00513..7841e98 100644 --- a/README.mkdn +++ b/README.mkdn @@ -158,3 +158,4 @@ Contributors:
    Alex Wiltschko
    Chris Warren and Tony Nelson (http://www.imagetrend.com)
    glasser +
    Ian Armstrong (https://github.com/isarmstrong/) From 9b6db239f9a0f52f898c9df85343820b81123118 Mon Sep 17 00:00:00 2001 From: Ian Armstrong Date: Wed, 3 Dec 2014 13:27:28 -0800 Subject: [PATCH 8/8] More Info page at http://rafael.adm.br/css_browser_selector has gone offline, removed from ReadMe --- README.mkdn | 1 - 1 file changed, 1 deletion(-) diff --git a/README.mkdn b/README.mkdn index 7841e98..fcf7fcd 100644 --- a/README.mkdn +++ b/README.mkdn @@ -3,7 +3,6 @@ CSS Browser Selector is a very small javascript which empowers CSS selectors.
    You can now write code for: browser, browser version, platform, platform version, device, device version.
    Best part: no more hacks; all compliant code. -
    More info: [http://rafael.adm.br/css_browser_selector](http://rafael.adm.br/css_browser_selector)
    beta/experimental versions: [https://github.com/verbatim/css_browser_selector/](https://github.com/verbatim/css_browser_selector/) Identifies