HTML and other SGML derivatives are founded on the concept of separation of form and function. The idea is that there's something that could be called content, and that identical content could be presented in various ways, depending on the preferences of the viewer, the physical device being used for presentation, etc. The concept of style sheets, borrowed from traditional publishing, is a further elaboration of these ideas, based on the notion that style is something that can be applied to arbitrary content to make it display correctly.
Not to put too fine a point on it, but this is a load of hooey. Talk to a graphic designer, or read a book on graphic design, and you come to understand that form is function. Style is content. Sure dull stuff like e-mail ("Check out this cool video...") and instant messages ("i m 2 ql 4 u") could be displayed in a variety of ways with no loss of information.
But look at ads in a slick magazine, or even well designed Web sites, and you'll see that the look is an important part of the message these are trying to convey. The colors, typefaces and sizes, and layout on the page or screen are all important to the impact. Usually many sketches and increasingly refined prototypes go into developing the desired look.
And designers have struggled for years with making Web sites because HTML is so hostile to design. It's anti-design. HTML says only the words matter ... everything else is left to the viewer.
Now, of course, because HTML is such a design-hostile environment, many Web designers have made great livings by knowing how to work around the shortcomings of HTML. They know how to pack images into tables, and how to use <DIV> elements, etc. to get the look they're after. Many books have been written on the subject, training courses have been developed, and Web design studios flourished.
But this tends to be very fragile. Browser incompatibilities can wreak havoc with even the most carefully wrought sites, and ever-changing technologies are sure to bring new pitfalls.
So, I'm sorry if I'm stepping on the toes of Web designers, but
FORM AND FUNCTION ARE NOT SEPARATE!