Dvorak Rants on CSS
John Dvorak writes on CSS after working on redesigning his weblog, the article ended up being extremely funny. From the write-up:
As we move into the age of Vista, multimedia's domination on the desktop, and Web sites controlled by cascading style sheets running under improved browsers, when will someone wake up and figure out that none of this stuff works at all?!
The problem is not with the CSS standard, the problem is with implementations of that standard. IE has been on a different planet for years when it comes to implementing standards. It's kind of laugable that there's the "Microsoft CSS standard," then there's the real CSS standard.
Firefox does better, and unlike Microsoft, they're actually trying. (And making a damn good effort of it, IMHO, it's actually really close from what I can tell.)
I don't have much experience with Opera, but I haven't had much trouble with it when dealing with CSS.
Remember several years ago when several car manufacturers got busted for putting bad tires on new cars? No one argued that having tires on cars was a broken idea. The same is true in this case. Don't ditch CSS, just fix the friggin' browsers.
Besides, what exactly is the alternative? Putting style tags on each element? For one thing, you'll run into the same problems, and for another, I'm confused as to how that is easier than using CSS. Going back to tag-level formatting? No thanks. Frankly, that was a hideous idea when they came up with it the first time.
It was a nice rant, though, but misdirected.
The troubles you are experiencing are not CSS problems, per se, but rather piss-poor browser implementations of CSS. If browsers followed the specs, you'd probably eliminate 99% of the issues right off the bat.
Katz^WDvorak is complaining about it now because he finally got around to trying to redo his blog with it. From the article, it appears he's basically experiencing some pain with his first exposure trying to format using a technology that he doesn't really understand. No real surprise there.
Sure, CSS has issues, but most of his frustration appears to stem from the fact that he really doesn't know much about CSS.
Unsurprisingly there are a lot of 'omfg css is so easy, you are just doing it wrong' and 'its the implementers problem' type replies. While both these statements are true, they are missing the point.
CSS in principle is a good idea, and in practice, even in its current state, is a great improvement on the alternative, but the fact remains that in order to do a non trivial design that works across all in-use browsers it is going to take a lot of work. To do this in a standard way (without relying on browser quirks) takes more work still. Not particularly hard work, but can be very time consuming. Granted, this is the fault of the implementations, but that is a bit of a moot point to the person who has to spend the hours trying to remove a 1 pixel gap from the side on image in ie, without breaking the appearance in firefox.
As a professional web developer, I rarely am meet with issues that I have any difficultly understanding, the problems come when you design an elegant solution for a problem, implement 99% of it, then find some bug in one of the technologies used requires you to throw it all out and start again, rushing a ugly and hard to maintain solution in order to meet deadlines and avoid the broken bits. Experience help to avoid this, but when you multiply the amount of technologies typical in a web project (server, db, client side scripting, server side scripting, content (html), display (css)) etc. by the number of implementation that may be used for each one, factoring in the rate of change these technologies go through, it become impossible to be ready for all possible limitations/ errors in implementation.
Sure, CSS has issues, but most of his frustration appears to stem from the fact that he really doesn't know much about CSS.
He's probably used to HTML. The Web exploded because HTML was easy and anybody could 'get it'. I taught my grandfather HTML over lunch on a sheet of paper in the late 90's. This was good for the web, despite how people bitch and moan about their refined aesthetic sensibilities being offended by amateur GeoCities pages.
Since then the programmers have taken over. HTML documents need to have an XML namespace declaration at the top that most mortals can't remember. The CSS inheritance model is nonsensical, I need a 2-page cheat-sheet to get the syntax right, its designer thinks declaring aliases are 'too complex' and it takes a bona fide css expert to get css positioning working across browsers with a design that survives user-preferred fonts.
I'll start worrying about all this when browsers stop rendering the transitional DTD styled with basic CSS and positioned with tables.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Precisely. The first clue should be when he says:
What the hell is he talking about? Not only is that not CSS's "real benefit", I can't even figure out how he managed to get the idea that this is what CSS is all about. Did he take one look at the CSS Zen Garden and completely miss the point or something?
He can't even get basic facts and terminology right:
Nope, wrong. That's inheritance. The cascade is when you resolve rules found in multiple stylesheets.
You don't "set parameters for style elements" at all. Style elements are instances of the <style> element type, and they are used to include parts of a stylesheet in an HTML or XHTML document. You don't set parameters for elements either. He could be talking about attributes, or perhaps properties, it's hard to tell when his terminology is so muddled.
Finally, this bit is hilarious:
That's right, he's been totally oblivious to CSS, and now, when he starts to learn a bit about it, he blames his ignorance on some sort of conspiracy! That's right, us "techie insiders" have been keeping the truth from you, muhahaha!
Bogtha Bogtha Bogtha
For me, all Flash sites look exactly the same: Click here to download plugin.
Sorry, I don't want a plugin that's mostly used to enable advertisers to max out my CPU. Whatever, there's millions of other sites on the web to see. I'll just move on to the next one.
His rant can be extended to the whole PC world in general. The infancy of the personal computer industry began in an atmosphere of "selling the dream" and never worrying that it couldn't be delivered... and has never grown up.
Computers with sixteen-slot S-100 busses that couldn't possibly drive sixteen cards.
The Apple ][ which had no fan. The first time I saw one, I said, "Wow! they must have brilliant thermal engineers." Then the owner explained that the reason why the cover was off was that if he put the cover on it would overheat and shut down. They didn't have brilliant thermal engineers: they didn't know that they needed thermal engineers.
I remember a guy who kept talking about how wonderful his North Star Advantage was. I asked him if it was reliable. He said, absolutely, he had had no problems with it whatsoever. So the next time I was in his office, I asked for a demo. "Oh, I can't," he said. "The power supply burned out last month." "But," I said, "I thought you said you hadn't had any problems with it." "I haven't had any problems with the computer," he said. "Just the power supply."
And that, in a nutshell, is the way the PC industry has been since its inception. CSS is just one of many examples. People tried to achieve consistent appearance with HTML, and couldn't because it wasn't designed for that and different browsers rendered it differently. So, they invented CSS, whose whole reason for existence is to allow Web pages to be written to a standard that will be rendered consistently by all browsers. And it doesn't really work, and nobody cares.
How about all those USB devices whose instructions tell you never to plug them into a hub?
How about all the CDs that burn and verify without error... and can then be read in about 95% of all CD readers?
How about all the Bluetooth thingies that won't interoperate properly with other Bluetooth thingies?
How about all the Windows releases, each of which is going to solve the security and usability problems of the previous releases?
It goes on and on... but it doesn't matter because nobody expects the stuff to work any more...
"How to Do Nothing," kids activities, back in print!
Writing web pages following the standards is a good thing, but making a complex CSS layout work with some buggy browsers out there is hard. The solution is to not recreate the CSS from scratch, but starting from an already debugged existing layout.
E.g.:
Too many CSS web developers are trying to reinvent the wheel.
There's a hidden treasure in Python 3.x: __prepare__()
You're halfway right, but only in that decent web designers understand that their pages won't look the same in all browsers. That's the nature of the medium. If you can't truly come to grips with that concept and work with it instead of against it, then you'll never become good.
Again, web is not print, and you're only hurting yourself if you try to treat it as such. Real web design recognizes that users have different browsers, operating systems, plugins, extensions, fonts, sizes, monitors, gamuts, resolutions, DPIs, and so on. It is completely, utterly impossible to make an end run around those differences. Either make a design that scales and flows well on every client you can get your hands on (including Lynx and cell phones), or make a pretty PDF and be done with it.
Dewey, what part of this looks like authorities should be involved?