If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Learning HTML5 and CSS3?

I want to learn to create websites (hand coding).

I took a few introductory courses but my knowledge is rather limited. A friend who claims to know much about these questions suggested to start immediately with HTML5 and CSS3 while I do not even know much about HTML and CSS. He says the old languages are outdated and that I need to start right away with HTML5 and CSS3. I am skeptical ...

You are right to be skeptical. Firstly, html5 and css3 are supersets of html4 and css2. So "just learn html5, don't bother with html4" would be equivalent to "just learn calculus, don't bother with algebra". You need both, or your calculus class has to include an algebra class - however you want to describe it.

Secondly, html5 and css3 are not being rolled out all in one late tuesday "upgrade the internet" event. Pieces and parts are slowly being deployed via various browser upgrades, while other pieces are still in the definition and debate stage. So while you can use certain parts, other parts will simply break in a browser, and may not even end up in the final specs for the language.

I recommend doing some googling on things like "html5 compatibility" and you'll find tables that show what browser versions have what html5/css3 capabilities. You'll get a decent idea of what you can and can't use today.

Of course you could go the way most of the rest have done and learn html4.01 (strict) and css2, which will work in all browsers, and then enhance your skills over time by incorporating html5 and css3 as those features are of interest to you and available in browsers.

I echo tracknut's comments, and would add that, in addition to the things that do not work across browsers, many of the things that do work in HTML5 and CSS3 require browser specific code, because they have not been implemented in a standard fashion. That will eventually be resolved, but right now it is clunky.

Also, bear in mind that IE8 and below (which still have global usage levels of 10&#37;+) are not HTML5/CSS3 compatible anyway. So you need to ensure graceful fall back on non-compliant browsers.

Furthermore, the bits of HTML5/CSS3 that are well supported, like border-radius, can be used in HTML4/CSS2 documents anyway. You will get complaints from the validator, but it will work.

And you'd probably have enough to do learning HTML4/CSS2, JavaScript and PHP anyway, which are the nuts and bolts of web development, without bothering about HTML5/CSS3!

If you want to use some of the browser specific features of HTML 5 consider using modernizr (http://qww.modernizr.com). This javascript module allows you to test for specific HTML5 function support such as supported video formats, local data storage, form placeholder text, 3d transforms etc.