I first learned HTML a long time ago, from the Visual Quickstart guide in 1999, HTML 4 for the World Wide Web. Though I have a grasp of fundamental concepts of HTML, my knowledge of CSS is woefully bare. As far as learning goes, should I jump straight to learning HTML5 and CSS3? Would learning those technologies be backwards-compatible enough, or would this cause problems because I may be using tags that are not yet supported by a majority of current browsers? And if so, which version of HTML/CSS/XHTML/DHTML would be most useful nowadays?
This is really a general question that gets asked all over the place.
Should I learn [new version] of [technology] now, or learn [old version] first?
The answer is always the same. So long as you're dealing with a technology that has a healthy environment and user base around it (depending on the technology, it may only require 100 users on the whole planet, as long as they're passionate about it), then the starting point that you choose is irrelevant.
Really, no matter what you learn, you'll always need to know a little about the newer, and a little of the older stuff. So, pick a starting point (HTML5), and just go with it. You'll learn what you need to know along the way, so don't sweat the small stuff.
... and if your next question is the 2nd most asked question, something along the lines of, "Ok, but I'm going to build 'X' project - NOW should I learn [new version] of [technology] first?" then trust me, the answer is always the same. Just start. You'll figure it out.
If by asking the question you're trying to "avoid the problems I don't know I'll have", well then you're trying to predict the future. Last I checked, no one has figured that one out yet, so you're best to just get going.
Don't worry, it's not like you're going to fall screaming into a pit of vipers or anything. :)
Yes. You should learn and use HTML5 and CSS3 today.
If you wait until HTML5 and CSS3 are 'officially supported' before learning them, you'll be waiting until 2022, which is the year that Ian Hickson, the editor of the HTML5 specification, expects to see HTML5 put forward as an 'official recommendation' by the W3C.
The fact that HTML5 is not yet an official recommendation should definitely not stop you using it. It just means that the people who decide how the new features are implemented and tested haven't quite finished arguing about it yet.
In short, I suggest you run through the HTML Dog tutorials you linked to as a refresher course, then buy these wonderful books to get you up to speed on the new stuff in HTML5, CSS3, and how you can use both without breaking things in older browsers:
There is nothing too fundamentally different from HTML4 to HTML5 or CSS2 to CSS3 besides some added and deprecated features. HTML is HTML. CSS is CSS. So in this case, learn the latest.
Learning HTML5 will surely guide you in the better direction, as you'll most likely find what might and what might not work in certain browsers better then looking at older code posted for, say, HTML2 or something.
To be honest, the version numbers are more buzzwords than anything. HTML5 is just the next step of HTML, it has more tags and is based more on creating the semantic web however it is just HTML. Same goes for CSS3, it is the same thing... just with more properties!
There really is no reason not to use HTML5, just put the doctype
<!DOCTYPE html> at the top (which is so much easier than remember the mess of all previous doctypes) and use it as you need to. Try to keep all of your content semantic. Using HTML5 does not mean jumping head first into the world of Canvas, which some people seem to think... it is just using modern standards to do the same old thing you always did, just in a better more structured way.