I once had a t-shirt that was quite possibly my favorite thing in the world. Now, in retrospect, I realize that this was a period in my life during which my mother had hired an 18 year old Swedish girl as a nanny while she was at work, but I was 4. I can be forgiven for slipping the presence of an attractive woman who entertained and fed me far, far down the list of what was important to me. But I digress…
Being that I was prone to what everyone considered excessive sulking (I should point out that this is merely my neutral expression and has been all my life), I was given a t-shirt that said “the Incredible Sulk.”
At this point in my life I was a huuuuuge Incredible Hulk fan. 4 year olds are smart enough to know when adults are taking the piss. However, this is the closest thing I had ever gotten to an ‘Incredible Hulk’ t-shirt so I was happy enough.
Long story short, 4 year olds grow. 1970′s cotten t-shirts do not. I wore that shirt until it was full of patched holes and so tight that my 5 year old belly hung below the seam. Sadly, I had outgrown it. It was time for it to go.
HTML is now that t-shirt. Unlike my t-shirt (and eventually my nanny) I won’t be overly sad to see it leave.
HTML served a solid purpose in the early days of the Internet. It provided structure to files (which were little more than digitized documents) that people wanted to share from computer to computer. It was never originally designed for style and graphical layout.
As the web grew into what it is today, web designers improved what was possible with HTML by adding features that allowed for web sites to be divided up into smaller, manageable pieces. More and more control over multiple files became possible and the original structural controls became more complex.
The web had a problem though. The Internet has fast become a vibrant, graphically pleasing portal for entertainment, information and socialization. HTML could never escape the fact that it was a framework for organizing documents. Sure, HTML was given life support by a huge number of talented designers who broke up image files to give the illusion of free-form graphical interfaces but it was an illusion.
Along came CSS (Cascading Style Sheets). Orginally, CSS allowed only basic controls over things such as fonts and margins. But the idea was solid. A style sheet would indicate the formatting for a section of a web page. Web pages would reference the same ‘style’ by name, rather than typing in the html for each desired piece of formatting.
The natural extension to CSS was to allow it to control not just text but open elements on a page. This meant elements of the page could be configured for visual style as well as positioning. Even more exciting was the ability to position elements over-top of each other, overlapping when necessary to create striking graphical effects easily and to further seperate design from content.
The seperation of page design from page content is easily the biggest step forward in the recent history of web design.
CSS has now been around for over a decade, with the most recent major revision being released just before the millenium. It is widely (although still not perfectly) supported by all major internet browsers and has energized web design to an enormous degree. No longer are web pages boring clones dependant on the same tags for simple formatting effects. Now web designers have 100% control over the look and feel of any element including the standard html tags for things like tables, font effects such as bold, etc.
The next generation of CSS (CSS3) will increase control over object behavior, additional font control and include upgrades to static layout that is meant to replace the old table design element being misused. HTML 5 looks like it may make a stand on a few issues that may be useful, but it is now resigned to be an accessory.
It is well passed the time then that every web designer should be thinking of web sites as being CSS driven, and HTML as being a tool for elements and structure within the more flexible and capable style sheets.
Unfortunately, there is still far too many sites being driven by HTML with very little use of CSS. Why is that? A quick survey of my friends and the online community shows that some are simply unaware of the power of css. This is a result of the huge volume of HTML resources on the web that make little or no mention of style sheets. Another reason is often time constraints. Tools like Dreamweaver and Photoshop make it quick and easy to create sites using chopped graphical elements over simple table designs.
And yet there is a far more unfortunate reason. Our browsers continue to fail to achieve 100% accurate rendering of CSS. For the average web designer, projects must be completed quickly to earn money in a competitive marketplace. Having to compare rendering of CSS elements in Internet Explore, Firefox, and Opera can be a time-consuming process. Worse yet is the time spent trying to cheat the CSS elements so that multiple broswers will show that element the same way. It can be tempting to just chuck the CSS on a tightly budgeted site and go back to HTML tables to ensure simplicity and speed of project completion.
The Browser manufacturers must do a better job of rendering CSS accurately and consistently. Web designers are currently holding an amazing tool in their hands that they cannot always use due to the failure of browsers to be compliant with standards set by the web community. This is an unacceptable failure on their part.
It appears that the browser developers are being more pro-active for the CSS3 release in the near future. They are pre-building compliance for some standards that have yet to be released officially. If this commitment to the CSS standard continues, it would seem that we can finally let HTML (at least as a guide to design) die a more dignified death.
There will always be a place for HTML in displaying data or one-time, non-essential variances, but when it comes to layout and standardization of sites… it can go the way of the Incredible Sulk.