Or: How I learned to Stop Worrying and Love CSS
Ever since the browser-wars of the late 1990's, developers have had to come to terms with the issues of rendering a website layout as uniformly as possible across multiple platforms and an ever-growing number of browser versions.



Cross-browser refers to the ability for a website, web application, HTML construct or client-side script to support multiple web browsers. Basically when developing any site, one must first make a decision about which browsers you intend to support and which ones will be happily tossed into the "Not Applicable" bin. Team 321 generally sticks to a set list of IE6+, Firefox 1+ and other Gecko browsers, Opera 8.5+, Safari 1.3+, Konqueror 3,4+.
When an issue arises that could hinder basic site functionality, the rule of thumb is leave it out. That cool effect with spooky eyes following the mouse and a dancing bear appearing in the address bar can be great, but only if they work, and if they add something to the user experience (which neither of these examples do by the way).
Using CSS to standardize the way sites look on different browsers is a good starting point. Even this approach presents it's own separate set of challenges, as browsers tend to interpret attributes their own way. After a bit of tinkering and a few cans of Mountain Dew, a motivated developer can usually reach an acceptable middle ground based on the pre-determined target browser list.

Another valid and valuable tool in the war with cross-browser compatibilty is Adobe Flash. Items like dropdown menus, sliding text boxes and other cool effects are sometimes best taken out of the page code and rendered using Flash so that non-standard functions in DHTML, JavaScript and even CSS do not result in browser errors and accessibility issues.
As always the rule is to use sparingly and only when it enhances the usability of the site. Whether employing CSS or Flash for nifty page and layout effects, always put the user experience first. That's it for now, happy coding!
- KG