Dvorak Rants on CSS 522
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?!
Standard versus Proprietary? (Score:3, Insightful)
I have to agree with him here 100%. Back in my SysOp days running a multinode BBS, I remember the hassles of the design interface -- we had 80 x 25 characters to use and we had (at most!) 2.4K/s download speed. Any remember using TheDraw to animate ANSI? What fun those days were.
All those hours and hours of editing in edlin and then TheDraw and then the RipTerm editor were always a big hassle, but today's multimedia standards are absolutely horrible. Once something finally gets to the ideal stage, it is replaced by something new that doesn't work well. CSS is probably the worst "standard" ever created in terms of design -- the idea is great but I'm starting to see that "freely created" standards are more and more garbage, no matter what the ubergeek thinks.
I'm in the process of starting our CSS layout from scratch for all of our blogs (I hired one graphic designer and have 2 more volunteers). We've spent 40 hours in the last week testing a few ideas on a variety of browsers and they're a mess. I think I should go back to the days of plain-jane HTML and just deal with it, but many people are becoming comfortable with the whole Web 2.0 interface and it is almost expected. I can accept that, but it seems that CSS does more harm than good, especially with the massive number of browsers out there. I really think we should consider each browser application and each version number as a totally seperate entity. I have to keep an entire set of different installs of various browsers (when possible) just to test all the different versions.
I'm a pro-market kind of guy, so I can accept these stumbling blocks because I do know that it is better for the market to have all the competition, buggy or not. Many standards do work eventually, but they have to be replaced because something new was released that everyone wants. I look at Flash (which was mostly proprietary for a long time) and I was much more luckier in designing a flash interfaced site (in terms of compability over the long haul) than I have been with any of the public standards.
I'm wondering: is the future not a public standard but a mess of proprietary ones that may work better, even if they require plug-ins and additional software to work? Standards bodies have NO REASON to try to make something work in even one platform -- they can blame the developer of the platform for the mess. Proprietary formats, on the other hand, often times will see any bugs being blamed on the developer of the format, not the developer of the platform using the format. When Flash first came out, the great majority of problems we had were always blamed on Macromedia, not on IE or Netscape. While I'm not saying this is necessarily an area that competition (of relatively proprietary standards) is the best for the short term, it might be for the long term. Who is competing against CSS in terms of proprietary standards for basic text and graphic layout? Will HTML be replaced by a variety of other formats that require some other application to be bought to create them?
(FWIW, I know that making a good CSS means documenting and comments everywhere -- even when that is done properly there still seem to be a ton of problems across the various platforms. I also have spent time on csszengarden.com for some insight in overcoming the problems).
Can you read my mind? (Score:5, Insightful)
Dvorak is waiting for DPSS.
Ever since we began using CSS for handling the visuals on our reporting platform we've had a much easier time making a big splash with clients. In the past just giving a new look and feel was all that was needed to appease the vast majority of clients; in spite of the data shown being exactly the same. Sure CSS requires effort, and as I read through the W3C's documentation I don't see them make the claim that CSS is necessarily easy on its own. Instead, the combination of tools (HTML and CSS) make presentation easier to update and shape.
DPSS (Designer Perceptive Style Sheets) should be ready in the next 50 to 100 years though. So, Mr. Dvorak, hold out just a bit longer and you can just think it, and it will be done.
Instead, Mr. D, rant about how the different browsers (IE6 rules!) failed to follow a published standard. The largest obstacles in web development are not the individual elements, but the containers. Having to do the same thing 3 different ways is obscene. On that, we agree.
What's the alternative? (Score:5, Insightful)
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.
Re:Two problems (Score:5, Insightful)
This just in.. (Score:5, Insightful)
Ok, this is actually a bit funny, but not in a humorous editorial column way. More of a sad "son hits dad in the groin with a baseball bat on 'Funniest Home Videos'" sort of way.
Re:Standard versus Proprietary? (Score:5, Insightful)
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.
Re:Two problems (Score:5, Insightful)
Sure, CSS has issues, but most of his frustration appears to stem from the fact that he really doesn't know much about CSS.
Re:Standard versus Proprietary? (Score:2, Insightful)
so what is the problem with the css standard, exactly? it seems reasonable to me, it's just that some browsers implement it poorly. maybe this is hard, or maybe a common standard for presentation on the web is not in the interests of some dominant browser makers?
assuming "too difficult to implement" is a valid complaint, are there others?
Learn2Code (Score:2, Insightful)
He's blaming the wrong group... (Score:5, Insightful)
What? So, the reason why CSS renders differently on each browser is because of the standards bodies?
In other news: The POSIX standard is why Linux isn't the top operating system. The SQL standard is why every database works slightly differently (enough to trip you up). The 802.11a/b/g standards are why wireless can be a pain to set up...
Re:Standard versus Proprietary? (Score:3, Insightful)
Lots of people want to follow other standards. It allows for their product to be interoperable with existing (read: not their own) products. The ones that usually oppose said interoperability are trying to preserve a monopoly on their format.
Ahh, yes. The good thing about standards is that there are so many to choose from.
The problem with this approach is that it's a mess. Can you imagine if all of the nails used to build your house required a different hammer? Each light bulb had a different sized socket? Each automobile required a different sequence to start the engine? There's a reason why things are standardized. In this case, a standardized display format for websites should make it easier for everyone involved... if implemented properly.
Don't you think "at all" is a bit facetious? Fx is actually pretty good at implementing CSS, especially compared to, say, IE. Box model, anyone?
Different purposes. I shudder to think of a PDF-based Internet.
Damn Right (Score:5, Insightful)
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.
Re:Internet Connection Losing CSS data??? WTF??? (Score:2, Insightful)
Oh come on, Dvorak, this does NOT happen. TCP/IP has checksum features, if packets come in corrupt or not at all, the server resends that packet. It's an integral feature of TCP/IP.
Dvorak is an idiot. I really should stop paying attention to him.
Re:What's the alternative? (Score:4, Insightful)
Now that I've waded through all that and used it for years, I still have gripes, the biggest being that your choices for layout are basically "proportional" and "fixed", with no options in between for "wide enough to fit this table column at whatever font size the user has specified." (I write web applications that basically deal with tabular views of data, so dealing with tables is a BIG part of my day, and I'm not talking about trying to make bits and pieces of pictures line up using them). If I try fixed width, then if someone increases their font size past what I tested with, it begins to wrap around and look ugly. If I try specifying proportions, then no matter what I do, I end up with columns that consist of a checkbox or a two digit number that take up 1/10th of the width of the screen and again looks ugly. If I try using table tags and letting the browser render it however it likes, then users end up with basically random screens depending on how the browser was feeling that day, and hitting reload causes the entire page to render differently.
Experts should be optional (Score:5, Insightful)
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.
Re:Standard versus Proprietary? (Score:2, Insightful)
You're rule of thumb is correct: best practices is to reach for the widest possible audience.
Second Rule: depending on your audience and budget, you may be better off going with a CSS HTML alternate such as Flash.
Re:Two problems (Score:5, Insightful)
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 [w3.org] 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!
Re:Two problems (Score:2, Insightful)
If you are trying to do layout that is pixel-perfect on the web you are fucking up.
-Peter
Some of the things you can do with CSS (Score:2, Insightful)
Re:Solution (Score:3, Insightful)
So do it for your non-commercial work. Don't turn them away, just disable all CSS and JavaScript and give them the plain HTML. Include a big notice at the top with conditional comments telling them that their browser is broken and that is why they are getting the retard-friendly version instead of the high quality version everybody else is getting, and provide links to other browsers.
Sure, you'll lose some users, but you'll save a lot of work and inspire a few people to switch. The trick is to make them feel like they are missing out on something other people are getting.
Re:Le sigh. (Score:4, Insightful)
Re:Standard versus Proprietary? (Score:5, Insightful)
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.
Re:Two problems (Score:3, Insightful)
Web designers have been asking Microsoft this question for 10 years.
(And now they're asking why Firefox 2.0 can't pass the ACID2 test, either)
Funny how monopolies don't care much about competing on merits like that. You, the consumer, get screwed as a result. 10 years on, and it still needs to be explained?
Whole PC world: It doesn't work and nobody cares (Score:5, Insightful)
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...
Re:Experts should be optional (Score:5, Insightful)
As a programmer, I would like to distance myself from that - it's the graphic artists who have messed everything up. People who are insistant about they want this font here and that font there and this needs to be 2 pixels to the left but that needs to be mint yellow... The people that want it to "look nice" rather than to work are the culprits!!
Re:Two problems (Score:5, Insightful)
Stop yur whinin' (Score:2, Insightful)
"CSS's real benefit was that the layout not only could be changed easily but also could become dynamic: The content is stored in a database and presented as necessary, with instant updates. With dynamic content, it's possible for 100 people to go to the same Web site and get 100 different versions."
Wasn't it CGI, not CSS, that made dynamic content possible? CSS:
1) SEPERATES presentation from information, making all those cgi scrips a lot cleaner and easier to program
2) Pushes the processing of formatting client-side
Any CGI script can display 100 different non-css html pages to 100 different users.
Just because Dvorak can't figure out how float positioning works doesn't mean its a bad standard. CSS isn't perfect, but I don't see you coming up with anything better and getting all the browsers to support it (if imperfectly). I think the CSS that is consistently supported across browsers is far more impressive than the CSS that isn't is frustrating. In fact, I think we should have the W3C try to negotiate peace in the middle east as well.
And if you're still not happy with CSS, why don't you just output all of your web pages as XML and use XSLT for formatting. Then come back and tell me how complicated you think CSS is.
Skills (Score:2, Insightful)
Re:Experts should be optional (Score:4, Insightful)
It would appear to me that for the past 5 years, graphic designers have been one of the most technically-literate groups of people out there. They're one of the few demographics that actually "get it" when it comes to things like CSS.
There are some pretty slick sites floating around using nothing but HTML and CSS made by these designers by hand.
and for the record..... CSS is simultaneously one of the best and worst things to happen to the web. Best because it's an amazing tool for ensuring consitency of design, and providing *real* layout control. Worst because the standard was woefully incomplete in its early versions, and implemented differently in every browser.
Re:Experts should be optional (Score:5, Insightful)
Re:Standard versus Proprietary? (Score:3, Insightful)
The main issue I have with Flash is the fact that - by definition - every single Flash interface is non-standard, which means it takes a nonzero amount of time to figure out how to use, which means I don't get my content as fast as possible. A regular web page typically has about five different ways of scrolling: in Flash, you get as many as the designer could be bothered to program, i.e., one or two. And so on.
Flash is good for one thing and one thing only: looking cool. To be sure, this is a noble goal, but shopping websites etc. need FUNCTIONALITY, and that means standard HTML.
Re:Two problems (Score:5, Insightful)
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.
Re:Experts should be optional (Score:3, Insightful)
So, have you managed to master designs with CSS positioning that work cross-browser and don't fall apart as the font size changes? I'd love to see some examples. I've found a few from the well-known CSS gurus, but the other 99.9% seem to have problems.
Table layout is the worst kind of layout there is, except for the other methods I've tried.
Re:Two problems (Score:4, Insightful)
Re:Experts should be optional (Score:3, Insightful)
They are making the web into something I don't want it to be, so they are wrong.
Wow, that sounds remarkably undemocratic to me. You don't need the images, use a text based browser. I would be willing to gamble that most internet users LIKE the magazine look and feel. You do realize that this is a medium that's in its infancy and the easiest way to get people to adopt it is to lower the barrier to entry, right? So a magazine type look and feel would probably work in this regard.
Plus, you are assuming your use is the use. A lot of people use the web for different things. Some people use it for straight information, others use it as a creative tool, a significant group uses it as a lab, and then there are those who just dump whatever shit they can on it. The web becomes what it needs to in the context of the user. You don't like it? Read a book or something.
Or what? (Score:2, Insightful)
Or what?
"Or I'll say, 'All browsers must support CSS1 completely and CSS 2.1's positioning at least' again!"
Re:Blame Internet Explorer (Score:5, Insightful)
Re:Experts should be optional (Score:4, Insightful)
I don't see how throwing out 40 years of Human Computer Interaction research lowers any barriers, rather it raises them.
Yes, if your website's only purpose is to reproduce a 1-page magazine ad, go nuts. Though a PDF would be more appropriate for that. If you want people to interact with your website, don't ask designers who are experts in a non-interactive media to suddenly become experts in another field.
Re:Damn Right (Score:5, Insightful)
CSS was designed for content-based pages, not image-based pages. It is the marriage of a content-specific styling mechanism with an "OMG I need this pixel-precise and exactly matching the colors I see on my mis-tuned CRT with my ultra-tiny font sizes because I never set my system DPI properly" mentality of image-based layouts, predominately springing from graphic designers with their roots and training in a paper-based world, that causes the problems. Stop and realize that CSS is designed to deal with screen sizes from 4" to 56", font sizes from 6pt to 66pt, DPIs from 40 to 350, languages from right-to-left English to BIDI combinations of Latin and Hebrew, text-based terminals to LCD-based graphical terminals to CRT-based graphical terminals to pure-audio sans-graphics terminals, and CSS manages to have a single unified language for dealing smoothly with all of these in a single styling system, and be downright ashamed at your small-minded pixed-based layout woes.
Have you ever tested your pages with a default font size of 8pt and 17pt? On systems with a DPI of 67 and 148? Do you take your pretty page, un-maximize the browser window, grab a corner, and wave it around like mad to make sure that your layout doesn't break no matter what the window dimensions are? Do you put your page on a 21" monitor with 120 DPI and maximize it, to make sure you are not leaving 70% of the window as wasted blank space? (::cough:: cnn.com
Re:Blame Internet Explorer (Score:5, Insightful)
(Disclaimer: I may have forgotten the actual most common cause of death.)
Re:Two problems (Score:5, Insightful)
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.
Re:Two problems (Score:1, Insightful)
Netscape didn't follow standards until Netscape 6? What version of crack are you smoking?
Mosaic sucked for a long time.
Since Mosaic predates the HTML standard it's stupid to say that. Mosaic and later Netscape where moving faster than the W3C, because people were yelling for better features. Of course they'll screw up, their pioneers, it's a messy job. They where ahead of the standards.
Losing data (Score:2, Insightful)
Or if your Internet connection happens to lose a bit of HTTP data, will the rendering be ok?
Or if your Internet connection happens to lose a bit of TCP data, will the rendering be ok?
Or if your Internet connection happens to lose a bit of IP data, will the rendering be ok?
Web site creators fall into one of three camps (Score:3, Insightful)
The people that want it to "look nice" rather than to work are the culprits!!
I disagree. The people at fault are those who still think it is 1990 and design and programming are wholly separate disciplines. Camps 1 and 2 need to disappear. Camp 3 is growing fast.
Camp 1: Designers who want eye candy.
Camp 2: Programmers who would prefer that the Web be reduced to square corners, primary colors, dense copy, and no white space.
Camp 3: People who understand that design and programming have to work together in order to create true usability. Call them interaction designers, web developers, or webphibians. The name is unimportant, but the cross-disciplinary skillset is vital.
Re:Damn Right (Score:2, Insightful)
When a company pays $250,000 for a website they want it to look the way they want it to look... end of story. If OTOH they required the website to look great for everyone in every situation, then they would specify that and a much less demanding design would be approved, one which would be liquid or 'elastic' or browser/resolution/os agnostic.. so get over yourselves, cause not all websites are meant to work at a lowest common denominator level but often they do need to work with a certain minimum browser spec list, which is where the issues with browser deficiencies come into play... and where the difference is between a professional who gets paid to make things work within the requirements WHILE meeting project objectives and an Academic who insists on web development dogma DESPITE it's inabiiity to meet those same objectives.
Re:Damn Right (Score:3, Insightful)
On the one hand, yes, clients spending that kind of dough want things to look a certain way. The easiest way is to use image-based, fixed pixel layouts, etc. However, that is not the best way to do it, for the reasons cited previously in this thread. Usually that may be the only way to do it within budget, therefore making it the appropriate way, but from my experience, the only reason that doing it in a 'fixed' way versus a flexible way is because the designers just don't know how to do it correctly, not because it is that much harder. What should be happening is that "professional web development firms" should be explaining to customers that indeed they ought to spend the extra few design hours it would cost them to make sure that their site looks great (or at least degrades gracefully) so that their new site looks good to everyone, instead of just them.
Too many "professional web developers" are print graphic artists who get some web development tool like Dreamweaver and think that makes them a web designer/artist. Bzzt. Web sites, except for the most basic, are living, breathing entities that get *used*, not just looked at, by both the owners and the visitors. Granted, some $250k sites are just big advertisements, but even designing navigation between a bunch of static web pages isn't the job of a graphic artist -- you need usability to make it worthwhile.
Re:Damn Right (Score:2, Insightful)