There have been a lot of questions about CSS and its uses in the last few weeks, so I thought I’d throw in my two cents. Basically, it’s just a system for controlling the look of your site. Like server-side templates languages and content management systems, CSS lets users modify the look of their whole site by changing one file. In short, CSS is a system of client-side rendering rules. Let’s break this down…
CSS is client-side. This means it can do things that server-side systems can’t, or usually don’t. CSS lets users choose how they want the page to look using alternate stylesheets, let’s you adjust settings based on media types (desktop, handheld, telephone, television, etc.), allows users to override settings with user stylesheets (making the default font size bigger, get rid of ad banners, etc.).
CSS is a rendering language, which means that it changes the look of the page. Often this will be done by the templating languages in CMSs like Radio, Manila or Movable Type. Because it’s separated from the HTML, you can continue writing your web pages like you always have, and a special CSS designer (even one who doesn’t have write access to your website!) can work on the graphic design. Although, in my experience, CSS’ ease-of-use has allowed me (and I am terrible at designing sites) to create some decent-looking pages.
CSS is unlike most templating languages in that it’s rules-based. Like the pikeRenderer rules, you provide a bunch of attributes (font-family, color, weight, text-decoration) and apply them to a bunch of elements (specifications for sets of HTML tags). CSS even lets you change little things like the size of an <h2> header or the background color of a link. You can do all of this without modifying the HTML at all, letting the HTML simply store the content and CSS take care of the presentation.
CSS has it’s flaws of course: it can’t rearrange the structure or order of a page, it doesn’t let you add content like logos or navigation bars and it has compatibility problems in some browsers. But despite it’s flaws, it’s a very useful tool for those who want greater control over the look of their website. I hope that others find it as useful as I do.