Don’t wait to use HTML5/CSS3
If you have any doubts about HTML5 and CSS3 because of the fear of things not working on all browsers… It’s time to lose them and get with the times.
I can’t wait until all browsers support the latest standards and features. The good news is it is happening faster than previous standards adoptions. (Remember how much time and effort it took for the “web standards” of the early 2000’s to finally get through to everyone? Big thanks to @Zeldman and others on that front!)
If developers wait until all browsers support the new features before they start using them, it will hinder the evolution. Any time I view the source code of a site and see abuse of tables for a layout crutch, or poor use of CSS, I cringe. Fortunately that’s more rare than common these days
Sometimes as web developers we can’t use the latest client-side technologies because some browsers don’t support them and we need to be sure our pages work for everyone. Workarounds of the past included browser sniffing and directing to a page for the browser, or dynamically including appropriate content. Or hacking stylesheets to take advantage of browser bugs so rules applied to some browsers and not others. Or…. yada. OY!
I’m so done with any kind of hacking or going to great lengths to serve different content bits to different browsers. More than ever, I am of the firm opinion it is time to let natural degradation take its path. The most important thing is delivering usable information to the client in an attractive manner. If their browser doesn’t support the latest standards or features, then straight up html and css is sufficient. On the other hand, if a computer is running a new browser capable of the latest html5 and css3 features, then it is new enough to support rich media or the user is savvy enough to be keeping their system upgraded.
Well, yes, we do need to be sure our pages work for everyone. But if the technology degrades well, so the user with the older browser doesn’t even know what they are missing because the page is perfectly usable…. And the same page has new whiz-bang coolness in the latest browsers… And the other browsers are going to be catching up… Why not start using it?! After all, the more sites that use new technology, the more it will pressure the other browsers to stay with the program of pushing their new features forward at a fast pace.
Use HTML5 layout tags now (header, aside, article, etc.) and use the same class/id names for the div within. It will get you used to the semantics and eventually you can clean up the divitis.
There are some frameworks like “modernizr” that will help automate some backwards compatibility, but I’m not sure I want to go there. I’d rather design for the new browsers that are following standards, and let the others miss out on the polish – that is, as long as the page still delivers the content efficiently to the others.
A few interesting links: