Option #1
A single IE-only stylesheet inside of a conditional comment; inside that file, different versions of IE are targeted with hacks.
Drawbacks to #1
- Every version of IE will load the extra styles, even the unused ones
- Potentially adds an extra HTTP request
- Changing something in the main stylesheet may require that you hunt down IE-only styles in a separate file
Benefits to #1
- IE styles are in one file, so they’re easy to maintain
Option #2
Multiple IE-only stylesheets inside conditionals, each targeting a different version of IE.
Drawbacks to #2
- Changing something in the main stylesheet may require that you hunt down IE-only styles in as many as 2 or more extra files
Benefits to #2
- No unnecessary HTTP requests
- No unnecessary lines of code loaded in the main stylesheet
Option #3
A single stylesheet that targets all browser, but within that stylesheet, IE-only hacks are present.
Drawbacks to #3
- Unnecessary lines of code are loaded for all browsers
- Your main stylesheet will not validate (thanks to comment from Jeremy Carlson for pointing this out)
Benefits to #3
- No extra HTTP requests
- No need to open multiple CSS files to adjust something that’s hacked for IE
Option #4
One or more JavaScript files inside of conditional comments that target different versions of IE, dynamically adding or removing styles and/or class names.
Drawbacks to #4
- IE Browsers without scripting enabled will not see the corrected CSS
- A slow loading script could cause the styles to be applied late, making the layout temporarily look awkward
- Will be complicated to maintain, and could also require extra IE-only stylesheets, adding to the page bloat and slowness
Benefits to #4
- Could work on buggy elements that won’t behave with pure CSS (I’ve seen this happen and have used this method when time/budget was limited and the CSS was too messy to deal with normally)
Option #5
Ignore IE.
Drawbacks to #5
- Locking out a significant portion of your potential traffic/sales
- Client screaming at you because the website looks like crap in IE
Benefits to #5
- Only one hack-less stylesheet to maintain
- Peace of mind (but short-lived because of the screaming client)
