This was not the first post I had planned. It was to be a polemic on JavaScript‘s failures as a high level language. Not something new, people have been slowly realizing that JavaScript is more than alert boxes. With AJAX spearheading the Web 2.0 revolution and dragging the WWW out of tech corridor’s, geek quarters and Nigerian e-mail scam ‘s. But… the technologies which have radicalized the internet still remain shadowy and the domain of a few. All web programming languages remain in the custody.
And CSS is technically a programming language. Cascading Style Sheets describes the presentation of a document written in a markup language. For practical purposes the markup language is predominantly HTML (preferably XHTML), but any derivative of XML can be styled using CSS. It is a classical example of separation of concerns – the markup language, say HTML allows us to describe the document content and CSS describes the presentation.
It’s a great exercise for your imagination – how big should the “tabs” on this edit post page be, should they be rounded, what color should the tabs be, what font the lettering, should they be grayed out when not selected… and that’s just those two dinky tabs which say “Visual” and “Code” (out of curiosity how many have clicked on the code tab?). Every single element I just described can be done using HTML attributes or inline styles as well; but CSS extracts it out of the document content, allows you to apply it to other documents, gives a designer more freedom to work on every single display element, makes your web development effort more streamlined and easier to debug. For example, the place I work at has a changing look for our website every semester. To update each single page – that is a living misery. But now thanks to all the CSS effort we have, its easier to change skins in a second. What do you think WordPress does when they offer different color’s?
Anyways point being anyone can learn CSS. What is difficult is providing for all browsers and IE in particular. M$ has some of the best brains in the world, but their design and business decisions are mostly daft. But 90% of your customers/ visitors will use IE <*SIGH*> and you have to make sure the CSS works fine everywhere. I think that’s what will loose CSS most of it’s noobies – people lack patience to work on a skill that will take time to materialize <*guilty smile*>. Give it a try; most probably you will not be doing anything more than adding new color’s and making the page visually attractive… but who knows where that might lead you to.
As an end let me lead you to what I believe is the most beautiful concept in the Internet today.