by Joseph Lowery
Eric A. Meyer has been working with the web since late 1993 and is an internationally recognized expert on the subjects of HTML and Cascading Style Sheets (CSS). Author of Cascading Style Sheets: The Definitive Guide (O'Reilly & Associates), CSS 2.0 Programmer's Reference (Osborne/McGraw-Hill), and Eric Meyer on CSS (New Riders), Eric speaks at a variety of conferences on the subject of standards, CSS use, and web design.
Joseph Lowery: You're well-known and respected as a web standards expert and CSS guru, but how are you at predicting the future of CSS? In preparing for this interview, I came across an article you wrote in June 1999 on browser support and the future direction of CSS. How'd you do?
Eric Meyer: Oh, you are so off my Christmas card list.
As described, CSS has been split into modules, each advancing at its own pace. The problem is that that pace is almost uniformly glacial. Even the "quick" modules are on multi-year timelines. The few specific things that I said were on the horizon have come closer to being realized. Opacity, for example, is supported in a fair number of browsers, albeit in a variety of ways. Multi-column text is still pretty much on the horizon, though. Maybe a few degrees below it.
In terms of browser advancement, things have moved forward as the article generally assumes would be the case. I certainly didn't foresee the death of Netscape 5 and the rise of Mozilla but, in fairness, I don't think too many people saw that one coming.
JL: So in terms of where we are now, was the introduction of Microsoft Internet Explorer 7 a big leap forward or just a hop with a bit of backsliding?
EM: It was a big leap in place. By that I mean that in its cleaning up of IE 6 problems (parsing bugs, layout bugs, etc.) and addition of some core CSS 2 features (mostly selectors, fixed positioning), IE 7 caught up all at once, which is a pretty big leap forward. Not just for them, but for all of us.
Now we're all wondering whether it will get stuck in place and fall further and further behind, like IE 6 did, or if it will continue to keep up. I'm certainly hoping for the latter.
JL: I understand that CSS 3 is currently under discussion and development by the W3C. Can you give us a peek at what designers can expect in terms of new properties and selectors?
EM: You understand incorrectly. What's under discussion and development is various CSS modules, each advancing at its own pace.
It's quite possible that there will never be a CSS 3 the way there was a CSS 2. I'm still trying to decide if that's good or bad. I'm starting to think bad because it robs everyone of a solid target. With CSS 2, whatever you think of its various parts, it's something we could all look at and think about and talk over. Its parts could be related to each other. With modules, that kind of foundation is largely absent. Interdependencies become a lot harder to smooth out.
But in terms of what we're supposed to see in the future, there are some really powerful selectors, like
:last-of-type and so forth. There's also
:not(), which seems powerful but whose description makes my head throb. I'm personally a big fan of the RGBA color value syntax, where the A stands for "alpha," as well as HSL and HSLA. I'd like to see those added to browsers right quick, thanks.
There's also an advanced layout module, which will be a huge win for anyone who was hoping that the web would one day be based on ASCII art.
The hardest part about answering your question is that advances in CSS are largely bound to implementers, and they don't have a habit of advertising all their plans. I think it's most likely we'll see selector implementations. Opera 9.5, for example, claims a full implementation of the current CSS selectors module. I think most of what browsers add will be at sort of a low level — selectors, values, that kind of thing. Simple additions.
JL: There seems to be a good deal of contention over the CSS spec. What are the key points that folks are haggling over? You've been involved with the W3C before. Is this sort of back-and-forth normal for the recommendation process?
EM: It's hard to answer your question because of the modular nature of CSS: there are different key points for different modules. It's also tough because I'm no longer on the inside of the process, having left the CSS Working Group in 2004.
My guess, based on past experience, is that most of the haggling is over what would be good to add versus what is judged to fit in the scope of CSS versus what implementers are willing to implement. Yes, a three-way battle. Those are always messy.
What's happening is absolutely normal for the process. I'm just not sure it's good for the web.
JL: Once the spec reaches the recommendation stage, what's the forecast for browsers implementing the features? Are we in for another round of catch-as-catch-can rendering and the subsequent rise of CSS hackery?
EM: Even if some browsers implement a feature but others don't, we've learned the principles of progressive enhancement: use advanced features in ways that improve the experience for users of supporting browsers but avoid breaking the experience in "downlevel" browsers. A good example of that is using generated content to insert URLs into printed web pages. (See CSS Design: Going to Print on A List Apart for details.)
I think there will be more CSS hackery just because people seem to have a good time finding hacks. It's kind of like a puzzle game.
JL: CSS rendering in web authoring tools, including Dreamweaver, has been working hard to keep up. Do you think this has had an impact on the kinds of pages coming from current web designers?
EM: Absolutely. I talk to newly minted designers and they can't wrap their heads around the concept that anyone ever used tables for layout. They just do not get it. That shift in the field is as much due to what tools like Dreamweaver output as it is advances in browser support. (The two being inextricably linked, of course.)
JL: My company, WebAssist, and you recently collaborated on a new extension for Dreamweaver called Eric Meyer's CSS Sculptor. Does having your name above the title in a piece of software get you a better table at a restaurant or change your life in any other ways?
EM: Well, sure — people at conferences are constantly throwing the horns at me now. So thanks for that, Joe. Also — and please don't mention this to my city's architectural review board — I've installed an Olympic-size pool in a specially built sub-basement of my house to store all the cash that's come pouring in, thus fulfilling my long-standing dream of becoming a real-life Scrooge McDuck.
Otherwise, no, not really.
JL: Seriously, though, do you think CSS Sculptor has changed the general landscape for Dreamweaver designers? If so, how?
EM: I'd like to think it enables more rapid CSS-based layout development. I know it's one of the few interface-driven products I'd consider using myself, which is a pretty high compliment given that I'm an old-school hand-coder. (You'll have that in a 14-year veteran of the field.)
But I think what is really important about Sculptor is the way it exposes nearly all the CSS properties one can use in a compact interface; and that it shows the document tree, with the application of CSS to it, in a relatively intuitive way. Those two things allow designers to better internalize how CSS applies to the document, and what can be applied. They make Sculptor a learning tool in addition to a development tool, and that makes me happy.
JL: Where would you like to see CSS in Dreamweaver go in the next couple of years?
EM: As long as it keeps up with what browsers are supporting, I'll be satisfied.
JL: What advice do you have for those web designers just starting out now, the ones who will have to work with the CSS in the future? How do they get off on the right foot?
EM: The A-number-one most crucial piece of advice I can give is: practice, practice, practice. No matter how many books or tutorials or specifications you read, there is absolutely no substitute for experience through experimentation.
The biggest step toward that goal, though, is to learn the technology. Anyone who's going to be a professional web designer needs to understand XHTML and CSS and image formats and such — the same way a painter needs to understand different kinds of paints and canvases. A professional web designer is able to take a graphic design and hand-author it to life.
Which is not to say that designers must always hand-author. They just need to have that ability so that they truly understand the nature of the medium in which they're working, and also understand what tools like Dreamweaver and Sculptor produce.
JL: Any resources you'd like to recommend?
EM: One of the best CSS resources I know is the css-discuss wiki, located at css-discuss.incutio.org. It's the distillation of more than five years of wisdom and experience from the css-discuss mailing list. There are pages covering the pros and cons of various CSS techniques, basic information on obscure parts of CSS, tons of links to other resources, and more. It's literally my first stop when I need to look up something about CSS.
Some other worthy stops are positioniseverything.net, the various materials at the House of Style, and Russ Weakley's compact tutorials. For decoding convoluted selectors, I recommend the SelectORacle. And of course there's the all-seeing eye of Google.
JL: You're pretty all-seeing yourself — and modest to boot. Let's not forget another great resource: your own blog, meyerweb.com. Thanks for sharing your thoughts about where CSS is and where it's going, Eric — time to throw the hörns.
Joseph Lowery is the author of the Dreamweaver CS3 Bible and the CSS Hacks and Filters. His books are international best sellers, having sold over 400,000 copies worldwide in 11 different languages. He currently serves as VP of Marketing for WebAssist.