Определение браузера в css (хаки)

Допустим нужно применить какие-то стили, зависящие от браузера, к элементу <span class="test-hack">

Webkit (chrome, safari, opera 15+ …)

_:-webkit-any-link, :root .test-hack { ... }

Firefox

_:-moz-any-link, :root .test-hack { ... }

Presto (Opera 9.5-12)

_:-o-prefocus, .test-hack { ... }

IE6

* html .test-hack { ... }

IE7

*:first-child+html .test-hack { ... }
*+html .test-hack { ... }

not IE6

html > body .test-hack { ... }

not IE8

.test-hack, #ie#fix { ... }

not IE6-8

:root .test-hack { ... }

IE10-IE11

_:-ms-input-placeholder, :root .test-hack { ... }

IE11

_:-ms-fullscreen, :root .test-hack { ... }

MS Edge

@supports (-ms-ime-align:auto) { .test-hack { ... } }