in reply to (OT) Internet. Who should conform to who?
There is a comprimise. But it may change the way you think about designing sites as well as coding them.
It is quite possible to use a subset of most of the "new" technologies that either:
- work in all browsers in some fashion or other
- fail gracefully -- meaning the site can get by with not having the browser be able to render a given technology
A second example of number one is a technology that works "in some fashion or other" in all browsers. I will caveat and mention that I mean all 4.* and higher browsers, but I can explain how it will do no damage to earlier browsers that do not support it. What I am referring to is a subset of CSS. All 4th gen and higher browsers support some subset of CSS -- wether they agree on how to render it is another matter. But this brings me to my next point.
If you're coding for a large audience that uses such a wide variety of browsers, you should stop caring if your site looks 100% the same in every browser. It won't happen. Not in any practical way. And trying for 100% similarity becomes a maintinence nightmare. If one small change needs to be made to a page, you then have to re-check in every browser -- and probably make small changes for every browser's sake.
So if you take the plunge and commit to the philosophy that it's "ok" to have your sites look a bit different from browser to browser, there are a couple steps you can take to make your transition a success:
- Structure your documents well. Use a header tag ( <h3> for example) to mean "this is a header," not to mean "this is a bit of large, bold text." Use paragraph tags to say "I want a paragraph here" not "I want more space between these lines than a line break will give me." Most importantly, use tables to mean "here's some tabular data" not "ooh, here's my page layout tool."
- If you decide to try CSS positioning for the browsers that can handle it (I can hear cries from certain monks to turn away from the dark side), make sure you order your block elements in such a way as they still make logical sense if you were to read them on-screen in the same order as they're listed in the file. I actually like using lynx to check on this.
- Do your homework. Be aware of what does and doesn't work for different browsers. Acquiring this knowledge will keep you from experiencing suprises, and will probably speed up your productivity. There are quite a few good sites that give easier to understand explanations of those wonderful w3c standards. I also find Westciv's CSS guide to be invaluable.
So you can code to modern web standards without throwing out older browsers. You may not get to use all the toys in your toolbox, but it does not mean that you need to wallow in 5000 nested tables.