Our game plan went like this:
1. If possible, implement the desired look and feel across all browsers using only CSS and semantic markup.
2. When necessary, serve browser-specific styles using CSS filters.
3. Don’t deploy non-semantic markup just to achieve a specific visual objective in non-standards-compliant browsers.
4. Instead, if only junk markup will achieve the desired visual effect in non-compliant browsers, inject that junk markup via JavaScript.
5. The result is a site whose visual fidelity suffers only in non-standards-compliant browsers with JavaScript disabled.
