Wednesday, February 22, 2006

CSS Rant

Is it just me or is CSS and tableless HTML the most frustrating language combination ever produced? I've programmed in C++, Basic, Fortran, VBScript, Perl, Javascript, HTML, UNIX shell languages, and in proprietary languages like those used for Matlab and Mathcad. None of these come close to having so many unintuitive methods of accomplishing simple tasks. The VI text editor comes to mind, but by virtue of the fact that few people even know what it is should attest to the fact that usable commands actually mean something.

At first I thought I was losing it, or I was just plain going crazy, but I don't think I am any more. It used to be a line break meant a line break. Aligning something vertically (which is important in a vertical scrolling interface) was as easy as pie. No more.

My hat goes off to those fearless and talented people who are able to make the new HTML work for them, but as a language in and of itself, CSS2 sucks badly. I understand the need to separate code from formatting and having web standards, but it's like the idea separating church and state, or communism. It's great in theory, but not so easy to execute in practice.

For example, when programming in HTML, I knew that when something didn't line up, it was because my table structure was screwed up. There are only three tags in a table (table, tr, and td), so troubleshooting wasn't so bad. With CSS, if the layout isn't working it's because the "float" wasn't set to "block" or the "text-padding" was interfering with the "div padding", or "clear" wasn't set to "none". It now takes 4 commands to center the content of a page, since the "center" tag is now deprecated.

CSS isn't all bad. Creating a grid of images is now super-easy, and we can celebrate the fact that a standard actually exists. However, I liked the days when browsers would gracefully resolve HTML inconsistencies.

What's even more upsetting is the tone of some of the CSS standards nazi's. "If you don't conform, you are evil" is pretty much the message. Thanks big brother, but as it currently stands, CSS2 is not an efficient programming platform. That doesn't mean that having standards are bad. Tag-based and object-oriented languages that can be shared across platforms and channels are very much welcome. It just shouldn't be at the expense of usability. Vertical and horizontal alignment should be easy.

I'll still continue learning it CSS2 and adding table-less formatting to my development toolset. However, with the added difficulty of programming in this way, table-based HTML still has a long and fruitful future ahead of it. As far as I'm concerned this is just a fad that every developer will have to suffer through in order to stay on top of their game. Eventually there'll be so many different workarounds for dealing with the programmatic roadblocks, we'll be back at square one with sites that exploit loopholes to make things work. It's just the nature of things I guess.

1 Comments:

Anonymous Anonymous said...

Hi--just wandered into your blog. CSS is near and dear to my heart. I hated it at first. Then one day I realized I loved it, and couldn't bear the thought of another table. I don't do any programming at all, so I can't compare the two, but one thing I find appealing about css is that it is a bit like a language: you can "say" something ten different ways. I'm never bored with it.
And the html is so much cleaner. Maybe it's an aesthetic thing. Who knows.
It's not because I agree with the standardistas, that's for sure. They're so strident. In the end, it's the content that matters, and not the code behind it. You'd never know that, from the people who seem to resent that browsers will even accept errors, never mind tables.
Well, I'd be interested in seeing if in time you change your mind about css as time goes on.
Cheers.

12:29 PM  

Post a Comment

<< Home