« Web Directions Melbourne Event | Main | Professionalism and Best Practice in Web Design and Development »

July 19, 2006

Dvorak and CSS

OK, so John Dvorak is an admitted troll, but his recent critique of CSS does raise, in a single location a number or myths and misconceptions about CSS that I'll try to address here.

He begins with the rather extremist claim that none of this stuff works at all. Well, I think that one can be more or less laid to rest without too much trouble. Plenty of industrial strength sites use CSS, so we can perhaps downgrade this to "some increasingly well understood and largely easily dealt with browser inconsistencies which tend to understandably cause newcomers some frustration".

Next we find

The first problem is the idea of "cascading." It means what it says: falling—as in falling apart. You set a parameter for a style element, and that setting falls to the next element unless you provide it with a different element definition. This sounds like a great idea until you try to deconstruct the sheet. You need a road map. One element cascades from here, another from there. One wrong change and all hell breaks loose. If your Internet connection happens to lose a bit of CSS data, you get a mess on your screen

Man, there are criticisms of CSS I've never heard of in there - so credit to Mr Dvorak there - I thought I'd seen it all. You really are imaginative. But sadly wrong.

The first problem with this paragraph is that he is describing inheritance, not the cascade. Elements don't cascade, but properties are inherited from parent to child element according to a set of rules, specified in CSS. Certainly, the way in which CSS facilitates inheritance is a little complicated - some properties are inherited, some not. But on closer inspection, the rules are actually common sense. We wouldn't want padding or margin to be inherited, because if you think about it for a moment, padding or margin would then be inherited by each element from its parent, and so would specifically have to be overridden for particular elements. Other properties are very logically inherited.

More importantly, CSS is a non trivial technology which attempts to solve a number of highly non trivial problems - to enable device independent, accessible, creative designs for HTML based content. And it enables this remarkably well.
So, yes, at times when really using CSS in a quite sophisticated way, you need some sort of assistance in deciphering (deconstruction is a specific technical activity that is not synonymous with deciphering or interpreting) or understanding what is happening with your CSS. That's something a good tool like Style Master, which has features expressly designed to help in this process will do for you. But it is never a valid criticism in and of itself that a technology is complex. Some technologies are complex for the reason that they essentially have to be to help solve complex problems.

The paragraph becomes increasingly muddle headed - I've rarely seen one wrong change that caused all hell to break loose when developing for the web. But the final sentence in this paragraph reaches the epic heights of that recent U.S. senatorial outpouring: "the internet is a set of tubes".

"If your Internet connection happens to lose a bit of CSS data, you get a mess on your screen"

I am of the possibly mistaken belief that my internet connection is incapable of losing data (even that tricky "CSS data") or any other action, and I have to say in nearly a decade of developing with CSS, I've never once, using dialup, wireless, GPRS, broadband or carrier pigeon seen a mess on my screen which was the consequence of losing CSS data. I am willing to be corrected.

Mr Dvorak is not done yet with his detailed analysis.

"That's not the worst thing. You can live with the basic cascading mess; it's a matter of debugging. The real problem is that no two browsers—let alone no two versions of any one browser—interpret CSS the same way! The Microsoft browser interprets a style sheet one way, Firefox interprets it another way, and Opera a third way. Can someone explain to me exactly what kind of "standard" CSS is, anyway?"

It's very hard to even begin addressing this. The differences between major browsers are reasonably small, if at times frustrating, but also very well understood - people have been actively analysing and suggesting solutions and workarounds (um, I think it's called "debugging") to these problems for nearly a decade now. If there is a problem with the support of CSS in almost any browser - including, let me say, WebTV, (I know, because I did the testing in the late 1990s) you'll easily find advice on how to work around it. Yes, it would be wonderful if all browsers rendered pages identically, but with the exception of Windows Internet Explorer prior to version 7, this is essentially the case now anyway.
Browser incompatibilities, real and alleged, are a significant reason why people don't adopt CSS, and continue to use completely out of date techniques for web development. Dvorak's crude rehashing of this decade old critique demonstrates considerable ignorance (or perhaps an attempt to look for troll victims outside the Mac community for a while.)

There actually are Web sites that mock this mess by showing the simplest CSS code and the differing results from the three main browsers and the Safari and Linux browsers. The differences are not trivial. And because of the architecture of this dog, the bugs cascade when they are part of a larger style sheet, amplifying problems. Worse yet, nobody except the most techie insiders wants to talk about this mess.

See, this set of tubes..., um sorry.

I've never seen these mocking sites - can someone show me a link? Let me tell you if I've not seen them they certainly haven't hit their mark. I imagine some of the "problems" the demonstrate may actually demonstrate ignorance about the underlying platform architectures the browsers run on (for instance, different default DPIs on Mac and Windows mean that text looks "smaller" on the Mac compared with Windows at the same pt size - that's not the fault of a browser, it's a fact of the operating system).
But do rest assured, people have been talking about this long and hard Mr. Dvorak, for a decade. I know, I am one of them, and I know many more. We've been critical of browser support for CSS. We've made our contribution to the development and fostering of CSS, and helped browser developer fix their bugs, all for no financial reward. We certainly didn't simply open up with both barrels 5 minutes after we started using CSS and got a little frustrated that it didn't work exactly like the "font tag".

Peering through the mist of blather, Dvorak seems to be asking for two things

1. for CSS to go away. I don't think that is likely to happen (BTW Mr Dvorak, you don't have to use CSS, the standards zealots won't come for you, I promise )
2. That CSS become SS - style sheets without cascading. Well here is the problem with that stroke of genius. Without the cascade, in every single style sheet, every element must have every property that you want set on your pages set explicitly. Every element will have to have its display type set to block, inline or list-item, every element will have to have margin and padding set for each edge, every element will have to have font, font size, color, background color and so on set explicitly. You get the idea. Really hard work for developers, and speaking from the perspective of someone with a fair idea about the technology, probably far more prone to developer error and far more likely to cause developer frustration than CSS as it has been developed.

Take note that you only see a nicely formatted page in your browser even without a style sheet associated with it because the browsers internal default style sheet cascades into your user style sheet. Would Mr Dvorak like to explain how browser could otherwise even work?

This is the problem with criticising without understanding, you say things which ridiculous to anyone with any idea about what you are talking about.

He continues

"Everyone loses here, from users who can't under stand why things look screwy"

Here's the scoop - they look screwy because the developer has not done a professional job. Probably they developed using IE on Windows for previewing, did absolutely no quality assurance at all (not even as much as changing the default font size in their browsers, let alone say validating their HTML and CSS, using Firefox or Opera to get a second opinion, or BrowserCam to check for these inconsistencies that everyone is so worried about they don't apparently do anything about them) and then blame the technology for their lack of professionalism.

"to developers who can't get CSS to do the job right "

Because they don't take the time to even understand the basics of the technology and reasons why they are there before jumping in with both feet criticising something in almost total ignorance. I swear there is more good free information, training and resources on CSS than just about anything else on the web, as well as plenty of forums where people will help you solve your problems if you simply ask them.

"to baffled content providers"

the only baffled person round here is me, trying to work out how that one follows - who are these content providers and what are they baffled about?

"And what's being done about it? Nothing! Another fine mess from the standards bodies."

Um, nothing is being done about the non issue of HTML having inheritance and Cascading style Sheet having cascading.
Browser developers, even Microsoft these days, are continuing to improve and extend their support for CSS. Hundreds of knowledgeable experts are contributing resources, training, explanation, tools, very often for free, while thousands of developers will help you at newsgroups and forums or on mailing lists.

Now, you might wonder why I have spent all this energy feeding the troll? As much it's because of the chorus of "I agrees" which the "discussion" following this article precipitated at PCMag. CSS, like any non trivial technology, or skill set, has a non trivial learning curve. But, it's also not rocket surgery people.
To any web developer not using CSS, really your days in the industry are numbered. That's not a threat, far from it - if you are concerned with your job or business, then holding out against best practice is not going to help further either of these in the long run. Dvorak's ignorant, largely incoherent trolling only bolsters the attitudes of those who hold out against adopting a technology that is well designed, works well, and solves a range of complex problems that old skool techniques such as table based design and presentational HTML simply can't. That's why it is so infuriating. Do we really have to be addressing these issues in 2006 with IE7 almost upon us, and Netscape 4 and IE 5 having an almost trivial user base. It's over people, let it go.

I hereby propose a corollary to Godwin's law of internet debating. When Dvorak enters the debate, the other side has won.

July 19, 2006 | Permalink

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8341cbf7d53ef00e5502108868833

Listed below are links to weblogs that reference Dvorak and CSS:

» Lost any CSS lately? from And all that Malarkey
If your Internet connection happens to lose a bit of CSS data, you get a mess on your screen. [Read More]

Tracked on Jul 21, 2006 1:22:58 AM

» links for 2006-07-19 from Nedward.org
Dvorak is a f*cking idiot Hack piece on CSS, and its supposed deficiencies maybe John should stick to a Blogspot template, or hire someone who understands the subject. [via] UPDATE: John Allsop picks apart Dvoraks piece Forbes names Buffa... [Read More]

Tracked on Jul 21, 2006 3:29:05 AM

» CSS is not all that bad! from Melalouise's Blog
John C Dvorak recently wrote an article titled Why CSS Bugs Me which raised the heckles of a few web designersout there. Now apparently Dvorak is an admitted troll, so we won't take it to heart but his article was... [Read More]

Tracked on Jul 21, 2006 10:44:46 AM

» Dvorak and CSS from Approved
westciv.typepad.com/dog_or_higher/2006/07/dvorak_and_css.html [Read More]

Tracked on Jul 26, 2006 12:51:49 AM

» Dvorak Does CSS from Scott's DasBlog
[Read More]

Tracked on Jul 29, 2006 2:45:52 AM

Comments

Without ratifying any of Dvorak's other claims, I have definitely seen pages display in the browser with no styles, presumably because the http request for the style sheet times out. In particular, the MMORPG satire "Kingdom of Loathing" displays this behavior frequently when its servers are under heavy load.

Do I think that's a reason not to use CSS? Not unless it's also a reason not to use images, or for that matter, text, both of which sometimes do the same thing.

Posted by: summervillain | Jul 20, 2006 12:02:37 AM

Dvorak's argument was exasperating. So much so that I felt it grossly overstepped its credibility. I laughed at its silliness, remembered 'that' video blog interview and dismissed it.

Probably a little too quickly.

Your response gave me some perspective and reminded me that while (in my opinion) the fight for CSS adoption and web standards is all but over, there is still a continual need to remember where we've been and where we're going; to provide helpful direction. It also won't do to simply stamp out or ignore frustrating articles like Dvorak's just because we may think we've 'arrived'. Recurrent issues need to be addressed, or their solutions need to be clarified.

So, while I was initially surprised you felt Dvorak's article warranted a response, I think you've done well to bite.

Now, about this 'rocket surgery' ... ;-)

PS. If I had read Dvorak's article when I was just beginning to learn CSS (and maybe if I'd been drunk ... really drunk) I'd hate to think I might have decided against pursuing this path as a result (although I do wonder what I might have done instead ... zoology, maybe). At any rate, this is obviously something Dvorak isn't considering. Or maybe, just maybe, we've jumped the gun entirely and his rant was really just a cry for help with styling his blog? Hmm ...

Posted by: Adam Schilling | Jul 20, 2006 1:30:55 AM

Adam,

exactly - people like Dvorak are influential, they shape opinions, and reinforce existing ones. Unbelieveable but true.

I think Dvorak's posts are usually a cry for help :-)

j

Posted by: john Allsopp | Jul 20, 2006 9:38:09 AM

Dvorak is just tired of trolling for Apple fans, so he's decided to go after those of us who support standards.

Posted by: Dave Simon | Jul 21, 2006 1:43:43 AM

summervillain:

When the CSS isn't loaded (like what you describe), a *well-done* page will display with the user-agent's stylesheet. Times New Roman, all black, headings sized according to their level, alas: a minimalistic, but structured and usable document. Not only is that "ugly" or "the hell breaking loose", it's not either "losing a bit of CSS". Losing 'bits' of pages is definitely not a standard nor common behaviour over a TCP/IP connection.

Of course, a half-assed attempt on CSS, with 42 nested tables for layout, spacer.gif's for every use of empty space (even between words--I've seen it), and the visual appearance arbitrarily divided between 'font' elements, inline CSS and a CSS stylesheet will look pretty awkward if something fails to load (the stylesheet or the hyper-ubiquitous spacer.gif).

Posted by: João Craveiro | Jul 21, 2006 2:15:02 AM

Excellent response to Mr. Dvorak. I wrote a similar, though shorter and not as well worded, response in a thread here: http://www.dslreports.com/forum/remark,16531828 (user JAAulde).

I also fully undertsand your need to respond--not to correct Mr. Dvorak, but to try and reach some of the people who may have read that and said, "Yeah, he's right!" I could feel my blood pressure rising as I read that 'discussion'.

Thanks for the good read,
Jim

Posted by: Jim | Jul 21, 2006 2:55:44 AM

Thank you so much for putting Mr. Dvorak straight on the utter tosh he wrote in said article.

Great Job on this write up, have a cookie!

Posted by: Andy Pearson | Jul 21, 2006 5:24:42 AM

OMG - I think the comments from those so-called developers are worse that than the article itself.

Posted by: Steve | Jul 21, 2006 7:21:53 AM

'rocket surgery'...I am intrigued

;-)

Posted by: wendy | Jul 21, 2006 8:23:14 AM

Thank you. Great read. Ironically I just had an argument about this at work the other day with someone who was being ignorant.

Posted by: Andy | Jul 21, 2006 12:19:51 PM

Hey,

people liked rocket surgery :-)

Sadly, not mine - got it from an ad for a comedy sketch show on TV

j

Posted by: john Allsopp | Jul 21, 2006 2:50:26 PM

Dvorak has got his answer here.

Posted by: John | Jul 21, 2006 9:42:42 PM

i first saw "rocket surgery" in krug's "don't make me think", i think. i actually can't remember, as my brain keeps dropping bits of my memory through the leaky tubes of my mind...

Posted by: patrick h. lauke | Jul 22, 2006 7:36:13 AM

Good read, thanks.

Posted by: Thierry | Jul 23, 2006 12:06:35 PM

Dvorak wrote: "when will someone wake up and figure out that none of this stuff works at all?!"

This is simply false. CSS works just fine, most of the time. Only advanced stuff is likely to break, though any CSS can fail to load, just like images, or even the HTML itself.

"The real problem is that no two browsers—let alone no two versions of any one browser—interpret CSS the same way!"

Most browsers show common CSS the same way, providing you stick to Strict Mode, or simple stuff. Again, it's advanced stuff that differs, due to differing implementations (that are slowly eroding over time - eg: outline now works in Firefox and Opera). Though I admit padding and margins can differ between browsers, but these effects are minimal, and can easily be defeated by setting margins and padding on everything to zero at the top of your stylesheet, then adding them as you style each element.

Posted by: Chris | Jul 24, 2006 9:26:40 PM

A year or two ago, I remember reading that a "weeding out" of self-proclaimed web developers was coming. Could this be the beginning? Those of us who develop sites for a living understand the benefits of CSS and most of us are already used to working around the nuances of browsers. I can understand how this would be frustrating for folks who decide to play around with developing a site, but for the rest of us, CSS is a fact of life despite its frustration and less than ideal standards compliance.

Posted by: nniiccoollee | Jul 24, 2006 11:12:10 PM

the wierd thing is, this Dvorak guy actually have a blog made with CSS (http://www.dvorak.org/blog/) -- he should have wrote "Why CSS Makes Me Look Dumb & Uglier" instead ;-)

Posted by: gato | Jul 25, 2006 2:25:04 AM

Man, that is some devastatingly unattractive design

Posted by: john Allsopp | Jul 25, 2006 10:59:38 AM

I agree - somewhat - that Dvorak's article is a "cry for help" but - for me - it's more profound if one reads the article in a clinical fashion. He doesn't understand CSS enough to write it. He's like every other Anyone-can-make-websites gang. Slice image, save as HTML and - Viola - you've got a site. Or, use Front page. Or, MS Word.

His personal Word Press template blog illustrates that. He knew enough to tweak the existing template within the layout divs but not enough to reposition those divs.

He's no different than the Marketing Director who knows about tables but not CSS (nor web standards) and refuses to allow the site managment team from using CSS for pure presentation; divs in table cells are acceptable.

I found the tenor of his article to be one of defensive frustration. John C's difference is that he has a tinny soapbox on which to stand.

Posted by: Sean Fraser | Jul 26, 2006 2:19:26 AM

What a superb article. I constantly hear about people who have given up on CSS and thrown their toys out, complaining that it's too difficult and/or unreliable. Now I shall have a page to point them at :)

Posted by: Olly | Jul 26, 2006 8:55:27 AM

Gak. Exactly -- seriously tell me -- do I say I want CSS to go away as you smugly assert. It's number one on your demented list. Where do I say that? Really/ Where? I cannot find it. Where do I even suggest it?

I'm glad to see you find CSS to be the ultimate in perfection to the point where you need to write this piece. Fabulous work.

Posted by: John C. Dvorak | Jul 27, 2006 5:34:11 PM

Not to defend the luddites, but I've been developing sites for a long time and I still get pissed off at the current state of browser compatibility. Only recently has CSS become a viable solution for the majority of my clients. It all depends on their userbase. You have to know the audience. There are still sites that must cater to IE 5 because that's who visits.

Secondly, although there are many CSS resources on the web, many of them are conflicting, outdated or do not show the best way to write cross-browser solutions. And Mr. Dvorak is right when he says they only show simple examples, many of them do. One is therefore relegated to combing through existing CSS, deciphering someone else's code, or trolling messageboards looking for someone to help fix your specific problem which is hit-or-miss in my experience.

Now I believe that developing with CSS and semantic markup is the way forward, no doubt about it. It just makes sense. But to say that it's easy or that its learning curve is justified is simply not true. It shouldn't be as hard as it is to get up to speed with this technology.

But, that's why we get paid the big bucks, right?

Posted by: Rich Paul | Jul 28, 2006 1:30:31 AM

Well, I for one told Dvorak that he was wrong. One major problem with his blog site is that the Doctype that he uses triggers quirks mode in IE and standard in everything else. However, this does not even make sense to me, as for things to look as dramatically different in all browsers would be for the document to trigger quirks mode in all the browsers. I think his biggest problem is that he just likes to complain and raise controversy. If he actually raised controversy intelligently I would not have a problem with it, but this is not always the case....

Posted by: Jeremy Nicoll | Jul 30, 2006 12:23:02 PM

Regardless of Dvorak's unsubstantiated claims and lacking knowledge of CSS, it isn't all perfect. I wrote a blog entry about it a few weeks ago discussing why CSS can be so hard to understand and why it's flawed in several ways.

Ok, before you throw me to the dogs, read my post and if you disagree, feel free to comment!

http://www.jakob-persson.com/node/477

Posted by: Jakob Persson | Jul 31, 2006 8:28:06 PM

Don't quit your day job.
You really suck at CSS.

Posted by: God | Jul 31, 2006 9:29:59 PM