Browser CSS hacks for dealing with compatibility issues

Some say it’s dirty coding, and maybe it is, but sometimes it’s easier to write a little hack rather than beat your head up against the desk for hours because IE 7 wont display correctly (or sometimes at all)

With these you’ll be able to better target IE, Firefox, Chrome, Safari and Opera from within the css.

 

Comprehensive List of Browser-Specific CSS Hacks

/***** Selector Hacks ******/

 

/* IE6 and below */

* html #uno { color: red }

/* IE7 */

*:first-child+html #dos { color: red }

/* IE7, FF, Saf, Opera */

html>body #tres { color: red }

/* IE8, FF, Saf, Opera (Everything but IE 6,7) */

html>/**/body #cuatro { color: red }

/* Opera 9.27 and below, safari 2 */

html:first-child #cinco { color: red }

/* Safari 2-3 */

html[xmlns*=""] body:last-child #seis { color: red }

/* safari 3+, chrome 1+, opera9+, ff 3.5+ */

body:nth-of-type(1) #siete { color: red }

/* safari 3+, chrome 1+, opera9+, ff 3.5+ */

body:first-of-type #ocho { color: red }

/* saf3+, chrome1+ */

@media screen and (-webkit-min-device-pixel-ratio:0) {

#diez { color: red }

}

/* iPhone / mobile webkit */

@media screen and (max-device-width: 480px) {

#veintiseis { color: red }

}

/* Safari 2 – 3.1 */

html[xmlns*=""]:root #trece { color: red }

/* Safari 2 – 3.1, Opera 9.25 */

*|html[xmlns*=""] #catorce { color: red }

/* Everything but IE6-8 */

:root *> #quince { color: red }

/* IE7 */

*+html #dieciocho { color: red }

/* Firefox only. 1+ */

#veinticuatro, x:-moz-any-link { color: red }

/* Firefox 3.0+ */

#veinticinco, x:-moz-any-link, x:default { color: red }

 

/***** Attribute Hacks ******/


/* IE6 */

#once { _color: blue }

/* IE6, IE7 */

#doce { *color: blue; /* or #color: blue */ }

/* Everything but IE6 */

#diecisiete { color/**/: blue }

/* IE6, IE7, IE8 */

#diecinueve { color: blue\9; }

/* IE7, IE8 */

#veinte { color/*\**/: blue\9; }

/* IE6, IE7 — acts as an !important */

#veintesiete { color: blue !ie; } /* string after ! can be anything */

/* IE8 */

#anotherone {color: blue\0/;} /* must go at the END of all rules */

Source: Paul Irish blog