The new HTML5/CSS3 (Web8!) stuff sounds cool! Should I start using it now or stick with css/xhtml wait until more browsers can use it?
HTML5 is supported by all browsers now, even IE5!(if you use the html5shiv script). I highly recommend reading http://diveintohtml5.org It is one of the best HTML5 resources out there.
As for CSS3, if you do use it, make sure to use vendor predix too, on top of the regular syntax. e.g.
I believe in progressive enhancement. IE9's css3 support sounds very promising.
There are parts of HTML5 that you can use right now, today. Forms for example. If you have
<input type="email"> in a browser that doesn't support HTML5 (yes, even IE6) you will simply see the same thing you'd see if you used
<input type="text">. Yet on a browser that supports HTML5 form elements, you gain the advantages of the
Another question on this site provides a good overview of the new features available to you through HTML5 and CSS3. There's a lot of good data on forms in that question, too.
To mitigate the issues with lack of feature support, should you decide that these new features are worth it, use the following resources:
- CSS3 Pie: an IE attached behavior (an
.htcfile) that makes Internet Explorer 6-8 capable of rendering several of the most useful CSS3 decoration features. When applied to an element, it allows IE to recognize and display
border-image, multiple background images, and
linear-gradientas background image.
trueif supported and
falseif not. Adds support for styling and printing HTML5 elements so you can use elements such as
<img />element or as a
background-imageproperty in CSS. Unlike
background-repeatwork as intended, and elements will respond to the
- TwinHelix IE PNG Fix: an IE attached behavior (an
- Whatever:hover: an IE attached behavior (an
:focusstyles in IE.
Generally people who use non-IE browsers upgrade them when asked to, and so IE bears the brunt of "But some browsers don't support this feature!" complaints. Modernizr will add the ability to use HTML5/CSS3 to any browser you're likely to see and not just IE. ie-css3.js will do the same thing, you simply have to implement it without an IE conditional comment (which means all browsers will end up getting it unless you include it with server-side user-agent checks – this will greatly reduce performance for all of your visitors, rather than just your IE users.)
Use whatever technology suits your needs most.
Eric Meyer wrote a nice article about why starting to use vendor-specific prefixes on CSS rules isn't lame like using css filter hacks used to be.
I think the same applies to HTML5. If you can check browser support for different features, why not use it. So long as the site degrades gracefully, live it up.
Some other useful links, when deciding what CSS3 features you might want to use: http://caniuse.com/ (gives a good breakdown of what elements and selectors are usable across which platforms)
http://css3please.com/ (an in-page-editable playground to mess with CSS3 features, this also gives some advice about which techniques and features are supported by which platforms for commonly-requested stylings, like rounded corners, gradient backgrounds, etc.)
I use it to enhance the experience on modern browsers so the users with a good browser get "rewarded" with nicer looking UI's (Rounded corners, shadows, that kinda stuff). I guess you shouldn't use it as a replacement for let's say your current clientside form validation, unless you got some kind of JS fallback for it.
If you are starting a new project using HTML5 which should also be supported in older browsers, the best option is to use Initializr -
Depends on what the audience is and what features you want to use. I expect it will be several more years before the average project can drop support for ie6 :(
If your site is a private intranet and you either control the browser, or have a limited range of browsers to deal with, then feel free to work on the bleeding edge of technology.
If not, no matter what you use, you will always have to take into account the lowest common denominator. In this case it is probably some combination of IE 6 and a range of mobile browsers. So, if you move ahead with HTML 5 you have the added issue of making sure your site 'degrades' nicely.