browser strangeness
This is my public LIVE browser test page for my own css formatting "hack" contributions to the universe. If you are new to web development... These are quick-fixes for browser-specific bugs, not anything to do with illegal activity. Most of these are the product of my own research and labors and also permutations of other hacks to get the right results. Only a few special cases are not mine but are good and provide important basics so are worth including.
It is always better to use good css before resorting to css hack workarounds, but these are here for solutions in the meantime.
--Jeff Clayton [ tech blog: jeffclayton.wordpress.com ]
If a CSS "hack" matches your browser it will turn red.
-: Internet Explorer CSS :-
Special Purpose
_::selection, :root .selector { property:value; }
Anything But Firefox and Internet Explorer 8-
Author: Jeff Clayton
_::selection, .selector { property:value; }
Anything But Firefox and Internet Explorer 8
Author: Jeff Clayton
_:root, .selector { property:value; }
Anything But Internet Explorer 8 (or ie6-)
Author: Jeff Clayton
.selector, #not#ie8 { property:value; }
Anything But Internet Explorer 8
Source: Big List of CSS Hacks
By Version
_:-ms-input-placeholder, :root .selector { property:value; }
Internet Explorer 10+
Author: Jeff Clayton
@media screen and (min-width:0\0) and (min-resolution:+72dpi) { .selector { property:value; } }
Internet Explorer 9+
Author: Jeff Clayton
@media screen and (min-width:0\0) and (min-resolution:.001dpcm) { .selector { property:value; } }
Internet Explorer 9
Author: Jeff Clayton
.selector { _property:value\9; }
Internet Explorer 6
Source: (Simple Combination)
.selector { _prop\erty:value; }
Internet Explorer 6
Source: (Simple Combination)
A Few Others
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { .selector { property:value; } }
Internet Explorer 10+
Source: Paul Irish
-: Firefox CSS :-
Special Purpose
_::selection, :root .selector { property:value; }
Anything But Firefox and Internet Explorer 8-
Author: Jeff Clayton
_::selection, .selector { property:value; }
Anything But Firefox and Internet Explorer 8
Author: Jeff Clayton
@supports (-moz-appearance:none) { .selector { --this-variable:value; property:var(--this-variable); } }
Firefox 31+ (CSS3 Variable Method)
Author: Jeff Clayton
@-moz-document regexp('http:.*') { .selector { property:value; } }
Firefox 6+ (Non-SSL Pages Only)
Author: Jeff Clayton
@-moz-document regexp('https:.*') { .selector { property:value; } }
Firefox 6+ (SSL Pages Only)
Author: Jeff Clayton
@supports (-moz-osx-font-smoothing:auto) { .selector { property:value; } }
Firefox 25+ (Mac Only)
Author: Jeff Clayton
@media screen and (-moz-os-version) { .selector { property:value; } }
Firefox 25+ (Windows Only)
Author: Jeff Clayton
@media (-moz-windows-theme) { .selector { property:value; } }
Firefox 4+ (Windows Only)
Author: Jeff Clayton
By Version
@supports (-moz-appearance:none) and (ruby-position:over) { .selector { property:value; } }
Firefox 38+
Author: Jeff Clayton
_:-moz-tree-row(hover), _:unresolved, .selector { property:value; }
Firefox 38+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (display:contents) { .selector { property:value; } }
Firefox 37+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (display:contents) and (not (ruby-position:over)) { .selector { property:value; } }
Firefox 37
Author: Jeff Clayton
@supports (-moz-appearance:none) and (will-change:auto) { .selector { property:value; } }
Firefox 36+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (will-change:auto) and (not (display:contents)) { .selector { property:value; } }
Firefox 36
Author: Jeff Clayton
@supports (-moz-appearance:none) and (mask-type:alpha) { .selector { property:value; } }
Firefox 35+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (mask-type:alpha) and (not (will-change:auto)) { .selector { property:value; } }
Firefox 35
Author: Jeff Clayton
@supports (-moz-appearance:none) and (font-kerning:none) { .selector { property:value; } }
Firefox 34+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (font-kerning:none) and (not (mask-type:alpha)) { .selector { property:value; } }
Firefox 34
Author: Jeff Clayton
@supports (-moz-appearance:none) and (list-style-type:any) { .selector { property:value; } }
Firefox 33+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (list-style-type:any) and (not (font-kerning:none)) { .selector { property:value; } }
Firefox 33
Author: Jeff Clayton
@supports (-moz-appearance:none) and (box-decoration-break:clone) { .selector { property:value; } }
Firefox 32+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (box-decoration-break:clone) and (not (list-style-type:any)) { .selector { property:value; } }
Firefox 32
Author: Jeff Clayton
@supports (-moz-appearance:none) and (background-blend-mode:difference,normal) { .selector { property:value; } _::-moz-math-stretchy, .selector { property:value; } }
Firefox 31+ /* The second selector blocks 30 */
Author: Jeff Clayton
_:-moz-tree-row(hover), .selector { --this-variable:value; property:var(--this-variable); }
Firefox 31+ (CSS3 Variable Method)
Author: Jeff Clayton
@supports (-moz-background-inline-policy:continuous) and (background-blend-mode:difference,normal) { .selector { property:value; } _::-moz-math-stretchy, .selector { property:value; } }
Firefox 31 /* The second selector blocks 30 */
Author: Jeff Clayton
@supports (-moz-background-inline-policy:continuous) { .selector { --this-variable:value; property:var(--this-variable); } }
Firefox 31 (CSS3 Variable Method)
Author: Jeff Clayton
@supports (-moz-background-inline-policy:continuous) and (background-blend-mode:difference,normal) { .selector { property:value; } }
Firefox 30-31
Author: Jeff Clayton
@supports (-moz-appearance:none) and (background-blend-mode:difference,normal) { .selector { property:value; } }
Firefox 30+
Authors: Guillaume Simons & Jeff Clayton
@supports (background-blend-mode:difference,normal) { _::-moz-math-stretchy, .selector { property:value; } }
Firefox 30
Author: Jeff Clayton
@supports (-moz-appearance:none) and (box-sizing:content-box) { .selector { property:value; } }
Firefox 29+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (box-sizing:content-box) and (not (background-blend-mode:difference,normal)) { .selector { property:value; } }
Firefox 29
Author: Jeff Clayton
@supports (-moz-appearance:none) and (list-style-type:japanese-formal) { .selector { property:value; } }
Firefox 28+
Authors: Guillaume Simons & Jeff Clayton
_:-moz-tree-row(hover), _::-moz-range-track:hover, .selector { property:value; }
Firefox 28+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (list-style-type:japanese-formal) and (not (box-sizing:content-box)) { .selector { property:value; } }
Firefox 28
Author: Jeff Clayton
_:-moz-tree-row(hover), _::-moz-color-swatch, .selector { property:value; }
Firefox 27+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (all:initial) { .selector { property:value; } }
Firefox 27+
Authors: Guillaume Simons & Jeff Clayton
@supports (-moz-appearance:none) and (all:initial) and (not (list-style-type:japanese-formal)) { .selector { property:value; } }
Firefox 27
Authors: Guillaume Simons & Jeff Clayton
@supports (-moz-appearance:none) and (image-orientation:90deg) { .selector { property:value; } }
Firefox 26+
Authors: Guillaume Simons & Jeff Clayton
@supports (-moz-appearance:none) and (image-orientation:90deg) and (not (all:initial)) { .selector { property:value; } }
Firefox 26
Authors: Guillaume Simons & Jeff Clayton
@supports (-moz-appearance:none) and (background-attachment:local) { .selector { property:value; } }
Firefox 25+
Authors: Guillaume Simons & Jeff Clayton
@supports (background-attachment:local) and (-moz-text-blink:none) { .selector { property:value; } }
Firefox 25
Author: Jeff Clayton
@supports (-moz-appearance:none) and (cursor:zoom-in) { .selector { property:value; } }
Firefox 24+
Authors: Guillaume Simons & Jeff Clayton
@supports (-moz-appearance:none) and (cursor:zoom-in) and (not (background-attachment:local)) { .selector { property:value; } }
Firefox 24
Authors: Guillaume Simons & Jeff Clayton
@supports (-moz-appearance:none) and (not (cursor:zoom-in)) { .selector { property:value; } }
Firefox 22-23
Authors: Guillaume Simons & Jeff Clayton
@supports (-moz-appearance:none) and (display:flex) { .selector { property:value; } }
Firefox 22+
Author: Jeff Clayton
_:-moz-tree-row(hover), _::-moz-range-progress, .selector { property:value; }
Firefox 22+
Author: Jeff Clayton
_:-moz-tree-row(hover), _::-moz-range-track, .selector { property:value; }
Firefox 21+
Author: Jeff Clayton
_:-moz-tree-row(hover), _::-moz-placeholder, .selector { property:value; }
Firefox 19+
Author: Jeff Clayton
_:-moz-dir(ltr), _:-moz-has-handlerref, .selector { property:value; }
Firefox 17
Author: Jeff Clayton
@media screen and (min--moz-device-pixel-ratio:0) and (min-resolution:.1dppx) { .selector { property:value; } }
Firefox 16+
Author: Jeff Clayton
_:-moz-tree-row(hover), _::-moz-meter-bar, .selector { property:value; }
Firefox 16+
Author: Jeff Clayton
_:-moz-type-unsupported-platform, :root .selector { property:value; }
Firefox 15+
Author: Jeff Clayton
@media screen and (-moz-images-in-menus:0) { @media (min-width:0px) { .selector { property:value; } } }
Firefox 11+
Author: Jeff Clayton
@media screen and (-moz-images-in-menus:0) and (min-resolution:.001dpcm) { .selector { property:value; } }
Firefox 8+
Author: Jeff Clayton
_:-moz-tree-row(hover), _::-moz-progress-bar, .selector { property:value; }
Firefox 6+
Author: Jeff Clayton
_:not(), _:-moz-loading, .selector { property:value; }
Firefox 3.x (Firefox 3.0-3.6)
Author: Jeff Clayton
_:-moz-tree-row(hover), _::-moz-viewport, .selector { property:value; }
Firefox 1.x (Firefox 1.0-1.5)
Author: Jeff Clayton
A Few Others
@supports (-moz-appearance:none) and (list-style-type:disclosure-open) { .selector { property:value; } }
Firefox 33+
Author: Jeff Clayton
@supports (-moz-appearance:none) and (image-orientation:90deg) { @supports not (all:initial) { .selector { property:value; } } }
Firefox 26 (nested method)
Author: Jeff Clayton
@supports (-moz-appearance:none) and (background-attachment:local) and (not (image-orientation:90deg)) { .selector { property:value; } }
Firefox 25
Authors: Guillaume Simons & Jeff Clayton
@supports (display:flex) and (-moz-background-inline-policy:continuous) { .selector { property:value; } }
Firefox 22-31
Author: Jeff Clayton
_:-moz-tree-row(hover), _::-moz-math-stretchy, _::-moz-range-progress, .selector { property:value; }
Firefox 22-30
Author: Jeff Clayton
_:-moz-tree-row(hover), _::-moz-math-stretchy, _::-moz-range-track, .selector { property:value; }
Firefox 21-30
Author: Jeff Clayton
_::-moz-math-stretchy, _:-moz-ui-valid, :root .selector { property:value; }
Firefox 4-30
Author: Jeff Clayton
_:not(), _:optional, .selector { property:value; }
Firefox 1.5-3.6 (Firefox > 1.0 and < 4.0)
Author: Jeff Clayton
-: Chrome and Safari CSS :-
If you are using iOS Chrome (say in version 7) and the hacks seem to be off, BEFORE you complain that these do not work, there is nothing wrong with the hacks -- it is not like other versions of Chrome. iOS Chrome uses the Safari hacks INSTEAD of the ones for Chrome.
Chrome for iOS is NOT using the Chrome engine but opted to use the Safari engine from Apple instead. It may look like Chrome, but it isn't when you look under the hood.
More about that here: http://allthingsd.com/20120628/googles-chrome-for-ios-is-more-like-a-chrome-plated-apple
Special Purpose
_:-webkit-full-screen-ancestor, :root .selector { property:value; }
iOS Blocker! (For Chrome 15+, Safari 5.1+, and Opera 14+) [If using Android, Requires OS & Browser 4.0+]
Author: Jeff Clayton
.selector:not(*:root) { property:value; }
Chrome and Safari (and Opera 14+)
Source: Known Hack
_:not(*:root), .selector { property:value; }
Chrome and Safari (and Opera 14+) (Another Way)
Author: Jeff Clayton
_:-webkit-any-link, :root .selector { property:value; }
Chrome and Safari (and Opera 14+)
Author: Jeff Clayton
@media screen and (-webkit-min-device-pixel-ratio:0) { .selector { property:value; } }
Chrome and Safari (and Opera 14+)
Source: Paul Irish
@media screen and (min-color-index:0) { _:-webkit-full-screen, .selector {(; property:value; );} }
Safari 6.1-7.0 (Not iOS)
Author: Jeff Clayton
_:-webkit-full-screen, _::-webkit-full-page-media, _:future, :root .selector { property:value; }
Safari 7.1-8.0 (7.1+, Not iOS)
Author: Jeff Clayton
@media screen and (min-color-index:0) and(-webkit-min-device-pixel-ratio:0) { @media { _:-webkit-full-screen, .selector { property:value; } } }
Safari 6.1-8.0 (6.1+, Not iOS)
Author: Jeff Clayton
By Version
- Safari-Only CSS -
@media screen and (min-color-index:0) and(-webkit-min-device-pixel-ratio:0) { @media { .selector { property:value; } } }
Safari 6.1-8.0 (6.1+)
Author: Jeff Clayton
_::-webkit-full-page-media, _:future, :root .selector { property:value; }
Safari 7.1-8.0 (7.1+)
Author: Jeff Clayton
@media screen and (-webkit-min-device-pixel-ratio:0) and (min-color-index:0) { .selector {(; property:value; );} }
Safari 6.1-7.0
Author: Jeff Clayton
- Chrome-Only CSS -
@supports (-webkit-appearance:none) and (color:unset) { .selector { property:value; } }
Chrome 41+ (and Opera 28+)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (not (-webkit-aspect-ratio:none)) { .selector { property:value; } }
Chrome 40+ (and Opera 27+)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (not (-webkit-aspect-ratio:none)) and (not (color:unset)) { .selector { property:value; } }
Chrome 40 (and Opera 27)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (shape-outside:none) and (not (will-change:auto)) { .selector { property:value; } }
Chrome 39+ (and Opera 26+)
Author: Jeff Clayton
@supports (-webkit-aspect-ratio:none) and (shape-outside:none) and (not (will-change:auto)) { .selector { property:value; } }
Chrome 39 (and Opera 26)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (shape-outside:none) and (will-change:auto) { .selector { property:value; } }
Chrome 37-38 (and Opera 24-25)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (shape-outside:none) { .selector { property:value; } }
Chrome 37+ (and Opera 24+)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (touch-action:auto) { .selector { property:value; } }
Chrome 36+ (and Opera 23+)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (touch-action:auto) and (not (shape-outside:none)) { .selector { property:value; } }
Chrome 36 (and Opera 23)
Author: Jeff Clayton
_::content, _:future, _:not(*:root), .selector { property:value; }
Chrome 35+ (and Opera 22+)
Author: Jeff Clayton
_:-webkit-any-link, _:host, :root .selector { property:value; }
Chrome 35+ (and Opera 22+)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (background-blend-mode:difference,normal) { .selector { property:value; } }
Chrome 35+ (and Opera 22+)
Authors: Guillaume Simons & Jeff Clayton
@supports (-webkit-appearance:none) and (background-blend-mode:difference,normal) and (not (touch-action:auto)) { .selector { property:value; } }
Chrome 35
Author: Jeff Clayton
_::-webkit-seamless-document, _:unresolved, :root .selector { property:value; }
Chrome 34+ (and Opera 21+)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (font-variant-ligatures:normal) { .selector { property:value; } }
Chrome 34+ (and Opera 21+)
Authors: Guillaume Simons & Jeff Clayton
@supports (-webkit-appearance:none) and (font-variant-ligatures:normal) and (not (background-blend-mode:difference,normal)) { .selector { property:value; } }
Chrome 34 (and Opera 21)
Authors: Guillaume Simons & Jeff Clayton
@supports (-webkit-appearance:none) and (font-kerning:auto) { .selector { property:value; } }
Chrome 33+ (and Opera 20+)
Authors: Guillaume Simons & Jeff Clayton
@supports (-webkit-appearance:none) and (font-kerning:auto) and (not (font-variant-ligatures:normal)) { .selector { property:value; } }
Chrome 33 (and Opera 20)
Authors: Guillaume Simons & Jeff Clayton
@supports (-webkit-appearance:none) and (object-fit:none) { .selector { property:value; } }
Chrome 32+ (and Opera 19+)
Author: Jeff Clayton
_:not(*:root), _:unresolved, .selector { property:value; }
Chrome 32+ (and Opera 19+)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (object-fit:none) and (not (font-kerning:auto)) { .selector { property:value; } }
Chrome 32 (and Opera 19)
Authors: Guillaume Simons & Jeff Clayton
@supports (-webkit-appearance:none) and (not (-webkit-marquee-repetition:infinite)) { .selector { property:value; } }
Chrome 31+ (and Opera 18+)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (not (-webkit-marquee-repetition:infinite)) and (not (object-fit:none)) { .selector { property:value; } }
Chrome 31 (and Opera 18)
Author: Jeff Clayton
_::backdrop, _:future, _:not(*:root), .selector { property:value; }
Chrome 30+ (and Opera 17+)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (justify-content:inherit) and (not (-webkit-hyphens:auto)) { .selector { property:value; } }
Chrome 30+ (and Opera 17+)
Author: Jeff Clayton
@supports (-webkit-marquee-repetition:infinite) and (not (-webkit-hyphens:auto)) { .selector { property:value; } }
Chrome 30 (and Opera 17)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (justify-content:inherit) { .selector { property:value; } }
Chrome 29+ (and Opera 16+)
Author: Jeff Clayton
@media screen and (-webkit-min-device-pixel-ratio:0) and (min-resolution:.001dpcm) { .selector { property:value; } }
Chrome 29+ (and Opera 16+)
Author: Jeff Clayton
@supports (-webkit-hyphens:auto) and (justify-content:inherit) { .selector { property:value; } }
Chrome 29 (and Opera 16)
Author: Jeff Clayton
@supports (-webkit-appearance:none) { .selector { property:value; } }
Chrome 28+ (and Opera 14+)
Author: Jeff Clayton
@supports (overflow:-webkit-marquee) { .selector { property:value; } }
Chrome 28 (and Opera 14-15)
Author: Jeff Clayton
@media screen and(-webkit-min-device-pixel-ratio:0) { .selector {-chrome-:only(; property:value; );} }
Chrome 22-28 (and Opera 14-15)
Author: Jeff Clayton
A Few Others
@supports (-webkit-font-smoothing:antialiased) { .selector { property:value; } }
Chrome 28+ (and Opera 14+)
Author: Jeff Clayton
@supports (-webkit-appearance:none) and (shape-outside:none) and (not (will-change:auto)) { _::cue-region, .selector { property:value; } }
Chrome 39 (and Opera 26)
Author: Jeff Clayton
@media screen and (-webkit-min-device-pixel-ratio:0) and (orientation) { .selector {-chrome-:only(; property:value; );} }
Chrome 24-28 (and Opera 14-15)
Author: Jeff Clayton
@media screen and(-webkit-min-device-pixel-ratio:0) { _:scope, _:future, .selector {-chrome-:only(; property:value; );} }
Chrome 27-28 (and Opera 14-15)
Author: Jeff Clayton
@media screen and(-webkit-min-device-pixel-ratio:0) { _:future, .selector {-chrome-:only(; property:value; );} }
Chrome 26-28 (and Opera 14-15)
Author: Jeff Clayton
@media screen and(min--moz-device-pixel-ratio:0) { .selector { property:value; } }
Chrome 22-25
Author: Jeff Clayton
@media screen and (orientation) { ::webkit, .selector { property:value; } }
Chrome 24
Author: Jeff Clayton
@media screen and(-webkit-min-device-pixel-ratio:0) { ::webkit, .selector { property:value; } }
Chrome 22-24
Author: Jeff Clayton
@media screen and(-webkit-min-device-pixel-ratio:0) { _::-moz-svg-foreign-content, _:scope, .selector { property:value; } }
Chrome 22-23
Author: Jeff Clayton
- Chrome & Safari Combined CSS -
_::-webkit-seamless-document, _:future, :root .selector { property:value; }
Chrome 34+, Safari 6.1+ (and Opera 21+)
Author: Jeff Clayton
_:scope, _:future, _:not(*:root), .selector { property:value; }
Chrome 27+, Safari 6.1+ (and Opera 14+)
Author: Jeff Clayton
_:future, _:not(*:root), .selector { property:value; }
Chrome 26+, Safari 6.1+ (and Opera 14+)
Author: Jeff Clayton
@media screen and (-webkit-min-device-pixel-ratio:0) and (orientation) { .selector { property:value; } }
Chrome 24+, Safari 6.1+ (and Opera 14+)
Author: Jeff Clayton
@media screen and (-webkit-min-device-pixel-ratio:0) and (min-resolution:.001dpcm), screen and(-webkit-min-device-pixel-ratio:0) { .selector { property:value; } }
Chrome 22+, Safari 6.1+ (and Opera 14+)
Author: Jeff Clayton
@media screen and (min-color-index:0) and(-webkit-min-device-pixel-ratio:0) { .selector { property:value; } }
Chrome 22-25, Safari 6.1+
Author: Jeff Clayton
_::-moz-svg-foreign-content, _:scope, :root .selector { property:value; }
Safari 6.0, Chrome 19-23
Author: Jeff Clayton
@media screen and (min-width:-100px) and (-webkit-min-device-pixel-ratio:0) { .selector { property:value; } }
Safari 6.0-, Chrome 23-
Author: Jeff Clayton
_:-webkit-full-screen-ancestor, :root .selector { property:value; }
Safari 5.1+, Chrome 15+ (and Opera 14+), Android Browser 4+, Android OS 4.0+, iOS Blocker!
Author: Jeff Clayton
_:-webkit-full-screen, :root .selector { property:value; }
Safari 5.1+, Chrome 11, 15+ (and Opera 14+), Android Browser 4+, Android OS 4.0+, iOS Blocker!
Author: Jeff Clayton
_:nth-last-child(n), _:-webkit-any(x), .selector { property:value; }
Safari 5.1+, Chrome 13+ (and Opera 14+)
Author: Jeff Clayton
_:-webkit-any(x), .selector { property:value; }
Safari 5.1+, Chrome 12+ (and Opera 14+)
Author: Jeff Clayton
_:in-range, _:not(*:root), .selector { property:value; }
Safari 5.1+, Chrome 10+ (and Opera 14+)
Author: Jeff Clayton
_::-webkit-input-speech-button, :root .selector { property:value; }
Safari 5.1+, Chrome 7+ (and Opera 14+)
Author: Jeff Clayton
_::-webkit-progress-bar-value, :root .selector { property:value; }
Safari 5.1+, Chrome 6+ (and Opera 14+)
Author: Jeff Clayton
_::-webkit-inner-spin-button, :root .selector { property:value; }
Safari 5.0+, Chrome 5+ (and Opera 14+)
Author: Jeff Clayton
@media not all and (min-resolution:.001dpcm) { _::-webkit-inner-spin-button, .selector { property:value; } }
Safari 5.0, Chrome 5
Author: Jeff Clayton
@media not all and (min-resolution:.001dpcm) { .selector { property:value; } }
Safari 5.0-, Chrome 5-
Author: Jeff Clayton
_:default, _:not(*:root), .selector { property:value; }
Safari 4.1+, Chrome 4+ (and Opera 14+)
Author: Jeff Clayton
@media screen and (min-width:0\-) { .selector { property:value; } }
Safari 4.1-, Chrome 5-
Author: Andy Kirk
@media screen and (min-width:0\0) { _:window-inactive, .selector { property:value; } }
Safari 4.x, Chrome 2-5
Author: Jeff Clayton
_:increment, _:not(*:root), .selector { property:value; }
Safari 4.0+, Chrome 2+ (and Opera 14+)
Author: Jeff Clayton
_:only-of-type, _:not(*:root), .selector { property:value; }
Safari 3.1+, Chrome 1+ (any) (and Opera 14+)
Author: Jeff Clayton
_:not(:root:root), .selector { property:value; }
Safari 3.X, Chrome 1
My own revision of a very old hack
_:not(*:root), .selector { property:value; }
Safari 3.0+, Chrome 1+ (any) (and Opera 14+)
Author: Jeff Clayton
_:-webkit-any-link, :root .selector { property:value; }
Safari 3.0+, Chrome 1+ (any) (and Opera 14+)
Author: Jeff Clayton
A Few Others
_::-moz-svg-foreign-content, :root .selector { property:value; }
Safari 5.1-6.0, Chrome 10-24
Author: Jeff Clayton
_::-webkit-input-speech-button, body:nth-last-child(n0) .selector { property:value; }
Chrome 7-9 (& old versions of Chrome 10 before 10.0.64)
Author: Jeff Clayton
body:nth-child(n0) .selector { property:value; }
Safari 3.1-5.0, Chrome 9- (& old versions of Chrome 10 before 10.0.64)
Source: Derived from Old Hacks
@media not all and (min-resolution:.001dpcm) { _:default, .selector { property:value; } }
Safari 4.1-5.0, Chrome 5
Author: Jeff Clayton
_:default, body:nth-last-child(n0) .selector { property:value; }
Safari 4.1-5.0, Chrome 4-9 (& old versions of Chrome 10 before 10.0.64)
Author: Jeff Clayton
_:window-inactive, body:nth-last-child(n0) .selector { property:value; }
Safari 4.0-5.0, Chrome 2-9 (& old versions of Chrome 10 before 10.0.64)
Author: Jeff Clayton
-: Opera Mini :-
Old Opera hacks still affect Opera Mini. Here is one of my combos that works... (A slightly simpler version of the one I updated for browserhacks to rule out Internet Explorer 7) and an old media query that still works as well.
_:-o-prefocus, :root .selector { property:value; }
Opera 9.5-12, Opera Mini 7.x (Opera 9.80)
Source: BrowserHacks.com (Modified)
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) { .selector { property:value; } }
Opera 11-, Opera Mini 7.x (Opera 9.80)
Source: BrowserHacks.com
Source Control Testing
Copyright ©2014-2015 by Jeff Clayton