Gus said:
It is true that HTML5 is only in "draft" state, just as CSS2.1 and
CSS3 are.
No it isn't. Not "just as".
CSS 2.1 is a working draft that has remained fairly stable for several
years, it is written in the form of a specification to the extent that W3C
deliverables ever are, it is actively promoted by the W3C, and it is
generally cited as the "de facto standard" for CSS (contrary to what it says
about itself, at least nominally).
CSS 3 is a collection of sketchy documents of very varying maturity and
activity around them. They even contain loads of "what should we do about
this?" statements, indicating that they are "working documents" much more
than draft or proposed recommendations are.
HTML5 is vague name for activities both at the W3C and at the WHATWG, and
everyone has his own idea of what topics belong to HTML5 - some people even
count CSS 3 as part of HTML5! The oxymoron "living standard", used by the
WHATWG, is revealing: to them, HTML5 is whatever happens to be in the WHATWG
document today.
HTML5 and is the latest defacto standard, just as CSS2.1
and CSS3 are.
Do I need to repeat the explanation of why that characterization is utterly
wrong?
No doubt about that, though they should only be used by people who
understand the implications and complications. Well, this applies to any
technology, but still.
HTML5 is incomplete as far as the new elements
are concerned (specification and browser support).
HTML5 is largely still just talk about what should be included. Of course,
as the topic is technical, the talk needs to be technical and often rather
detailed.
CSS 2.1 and CSS 3
also are not fully supported by all browsers.
Neither is CSS 4. You cannot even _define_ support when there is no
semi-stable draft for a semi-specification. It would be much more adequate
to say that CSS 2.1 is reasonably well supported by newest versions of
popular browsers when used in "standards" mode (but there are still
essential problems, especially due to use of pre-IE8 versions of IE),
whereas those parts of CSS 3 that have been reasonably well sketched-out and
stablish have _some_ support (usually partial, excluding the difficult
parts) in _some_ modern browsers.
The bonus is that you can also use the new elements
available in HTML5, in as much as they are supported by all browsers,
Which means pretty much none. Well, <wbr> might be counted in, and <nobr>
but oops, that one is "obsolete".
The new elements you can use are those that require no special support, like
<nav>, and those that can be reasonably well simulated in or taught to IE6
through IE8. For example, if you wish to style a <nav>, you should say
document.createElement("nav")
in a script, called before the first CSS reference, to teach that element
(just as an existing element, no features) to CSS. And if you wish to use
If you want to use some of the
new HTML5 elements, which it will support, just realize that some of
them are not yet supported by all browsers.
Get real. Most of them are not supported by any browser or are supported by
just one or two minority browser. There's still a lot in HTML5 that can be
used even today, and there's a lot more to be learned and experimented for
future use. But the situation is very different from that of HTML 4 - about
_it_ you could say that some of its features are not yet supported by all
browsers.