July 18, 2004

Real World Standards and the CSS Ballyhoo

I went to school with a lot of good designers. My school was a bit behind when it came to technology and wasn’t able to muster up a good base of interactive classes until after I had already graduated. I originally wanted to be an illustrator. I love to draw, but quickly realized I am much better suited as a designer. I have done quite a bit of print design (and even some illustration) but somewhere in there I became lured away towards interactive design. Since there weren’t many outlets to learn from at my school, I hit the books. Lots of books. And I still read just about anything I can get my hands on. But books will only take you so far, and most certainly never replace real world experience.This all contributes to the skills I exercise daily, but lately I find myself in a sort of limbo when it comes to CSS.

People always talk about the benefits of CSS. It saves time, money, bandwidth, and in a bind, foils bank robberies and feeds the hungry. While I love programming and seeing things come to life, the ends still don’t meet up for me with CSS. I consider myself an accomplished designer and I have a good time of communicating my ideas in a visual medium. Like Flash, which I love to program in, CSS and markup are just tools to me. They speak to me because they open new doors of communication and can make my job easier so that I have more time to focus on the message at hand. That is probably why they appeal to me so much. I love efficiency and I hate wasting time… and I especially hate redoing work. When it comes to design, I favor a methodical approach. Ordered sets of rules, process and organization work for me. Left-brained art.

Now, I am not trying to start a good practice debate. As this site is evidence, I am convinced of the merits of Standards. But outwardly, at times I feel like I am fighting a losing battle. Like I am trying to learn too many skills from too many disciplines, resulting in being a jack-of-all-trades and ending up a master of none. Maybe this is what eventually happens when people get old; they just give up. Technology exceeds them, and considering how fast it grows, the effect seemingly takes place overnight. You get passed over, suddenly everything in your kitchen is foreign to you and you are left shaking your fist at progress.

What does all this mean? Well, let’s fess up. I am far from a CSS guru (not that any of you pegged me as such). In my mind, I just got my training wheels off. But this is the constant; there are not enough hours in the damn day. I take in as much info as I can about CSS and Standards. Then, like an overtaxed dam, I spring a leak. Shit, heaps of new stuff to learn in Flash just came out. So, I reposition. Another leak. New server technologies. More leaks. New programs, more design research… and what’s that? You want a girlfriend? A social life? You fool! Flooded.

I realize it’s naive of me to think I can get to a point where there is nothing left learn. No one gets to the apex of the knowledge they wish to have. I just reached a boiling point in the last two weeks. My workplace is in a state of flux at the moment as we are shifting towards a more agency focused company. This means reconsidering our design process and outlining individual roles and responsibilities. This is all a welcomed change, but for me, one looming demon remains.

Time vs. Clean Code

There are still a lot of leftover conceptions of where exactly a designer’s job begins and where it ends. I have always programmed my websites; Flash, CSS, and markup. But here (most times) my job ends at design. Recently I have been touting the ideals of good practice for the web and the usage of techniques like CSS. My site, an award, and constant pestering on my part managed to turn a few ears. Even so, it wasn’t an easy sell. They understood that it could save time and money, but the fact that no one else knew enough to build a site this way outright, left them with a tough pill to swallow. Since I had some experience doing this stuff, I got to put my money where my mouth was. The problem with this was, I don’t know enough to do it… quickly.

I know the syntax. I know the code. Me streamlining them is still a work in progress. My site was a labor of love. I did it, but it took me quite some time. I was learning CSS as I went. Granted, I consider it a success, even if I have learned a tremendous amount since I finished it. Which brings me to another point; You can’t please everyone. As much as I can expound upon the benefits of of Standards, when you are the one implementing them and you can’t turn them into profit, you don’t have a leg to stand on. Especially in the case of me, where it takes me longer to do sites in CSS. It also takes me away from my normal slot in the production schedule, which tends to burn time and money. It’s difficult for people to understand why you would want to do something in a different way than how you already do it when it takes more time. I mean, let’s face it, most people don’t care how a site looks under the hood, just as long as it works. Luckily, I have managed to convince a few people, and they are starting to learn.

Over the past two weeks we were tasked with creating two websites from scratch (one of which I was solely responsible for everything on; design and programming). I was under a tremendous amount of pressure (as were my co-workers) and truth be told I didn’t feel as though I knew enough to pull it off. Four days and 55 hours later, we did it. It wasn’t pretty, but they got done and soon both sites will launch. The thing that really gets to me, and this is that part of me that gets pissed off at inefficiency, is that there is neither the time or the money to clean this stuff up and consolidate the code. I am not allowed to touch it once we have burned through the client’s hours and budget. Which isn’t the part I am frustrated about, that’s business. I just hate turning out a lesser product when I can help it. Perhaps I am making something out of nothing. I mean, in the end, the sites were both built with clean CSS and valid markup… albeit lots of excess CSS and markup. But in terms of convincing people with the final say, it’s been an uphill battle.

Ah. It feels good to vent a bit. I imagine there are many of you out there that are in this same boat. CSS is at a point where it’s trickled down to the everyday working schlub. I am sure I am merely in a interim stage of my web knowledge, as I try to keep all these balls in the air. I am being a bit hard on myself, but that is the way I work and that is the way I stay motivated. I keep reading, I keep learning, and I keep practicing. Sometimes when you concentrate so hard on getting to the next milestone you lose perspective on where you’ve been. When I first started designing websites, I let Fireworks write my code. What resulted was a tangled mess of tables and scary markup, imposing and unreadable by all but the brave-hearted. I have come so very far since then, and futher more each day. Now I think about the future of what I create. Does it have longevity? Have I left anyone behind? Did I forget to feed the cats? I do the best I can to push my design work as far as possible, while incorporating the new technical knowledge I’ve garnered. Everything is a process of growth, building upon your past successes and failures.

Commentary (24):

1. Dave S. says… jul 18, 2004 | 10:36 pm

Of course, you can’t expect to hit the ground running and build semantic, valid sites from day one after ditching tables; it’s a learning process that takes time. Years, even.

“Everything is a process of growth, building upon your past successes and failures.”

That’s about the best way to view it: everything is a continual push forward. Standards are a continuum, and no matter where you are on the scale there’s always another level of code cleanliness and markup purity to achieve.

It gets easier the more you do it, that I can say from experience. But is my code perfect? Not a chance. I’m past the point of having to fall back to tables by now, but there’s still a long way to go.

The important part is getting on the train; everything after that point is scenery along the way, and the final destination is a long way off.

“Like I am trying to learn too many skills from too many disciplines, resulting in being a jack-of-all-trades and ending up a master of none.”

Boy, that sounds familiar. There’s too much stuff out there, you can’t master it all. Having a good working knowledge of what you can’t do, I think, is more important than being able to do it all. At least that way you can find the right help.

2. Yannick says… jul 18, 2004 | 11:13 pm

I agree with you on somethings and I also agree with Dave. I am beginning the journey into using web standards and making websites using CSS and no tables (unless of course it is for tabular data). I know it is gonna take lots of time and lots of practice and I most certainly know at times it is very frustrating, but as Dave said the more you do it the easier it becomes. Right now I am armed with my little orange and yellow books and am chugging away like the little train that could and I intend to keep chugging over that hill.

You guys have a wonderful day and keep doing the awesome work you do. I must say I admire what you both are doing and have accomplished.

God Bless.

3. John Whittet says… jul 18, 2004 | 11:34 pm

All I know it I love CSS and I don’t think I’ll ever go back to table-based design. On the same note, however, nothing’s worse than wrestling with your HTML or CSS to get it to display correctly on any modern browser. The culprit is usually Windows IE…

CSS-based markup is much cleaner (Shaun Inman recently redid a site with CSS and reduced his server loads by 50%) and thus faster. And it degrades for PDAs… wonderful!

But it all comes back to implementation. We can talk about standards all day and how they cure cancer and all, but until I don’t have to open anything other than Safari to preview sites and box-model hacks are remembered with nostalgia, we’re not there yet. Uphill battle, indeed.

4. Mike D. says… jul 18, 2004 | 11:42 pm

This may sound selfish but I really think that a lot of the benefits of designing with standards are benefits for web workers and not necessarily users. This isn’t a bad thing, but it’s just something to keep in the back of your mind as you ask yourself “which way should I be doing this site”?

I think there is way too much emphasis on this mysterious quality of XHTML which is supposedly to magically transform our world one of these days. I am not a believer in the “one document fits all” theory either. Show me any XHTML site which purports to give the best user experience to sighted people, blind people, wireless users, the mentally disabled, etc using only stylesheets, and I’ll show you reasons why modifying the entire user experience (including serving up entirely different documents) is better for the user you happen to be talking about. I think you’ll start to hear a lot more about “server-side accessibility” and server-side wireless publishing as people start to realize that there are more differences needed in displaying content than can be provided by stylesheets.

The work that the WHATWG is doing is particularly fascinating to me right now. Here’s a group that basically says “You won’t see any benefits of XHTML until everyone is 100% Strict compliant, and that ain’t gonna happen any time soon, so can we please just innovate right now instead?” As a designer and a fellow maverick, I love that sentiment.

So anyway, before I veer further off-topic, I’ll just say this: Use standards to the extent that they make *your* life easier and *your users’* lives easier. That’s what they are for… and nothing more. The really smart people in this industry know when to follow rules and when to break them.

5. Jason Santa Maria says… jul 18, 2004 | 11:48 pm

I agree totally, Mike. I prolly should have mentioned that in the same way that I always strive for ease of building and workflow, I also try to make the decisions that best support my projects.

6. Alex Taylor says… jul 19, 2004 | 2:15 am

That definitely rang a few bells. I often look at how much web technology is out there right now - Flash, CSS, PHP, ASP, Python - and feel like I should be learning more, mastering every acronym in the known universe. It’s just like you said: knowing everything but mastering little, or knowing little but mastering everything. I’d like to do the latter, personally.

As a freelance designer this is especially important. Do I specialize, or do I try to do it all? I think I’d rather stick to just a few areas and keep improving upon them.

7. Rimantas says… jul 19, 2004 | 7:13 am

You know, sometimes I feel pity browsers are so forgiving. Yes, I understand, that played a huge role in the sucess of the web, but that also gave
so scewed look on standards. If browsers would spit “syntax error on line X” every time you did something wrong, like compilers do - we’d had entirely different attitude.

8. Kevin says… jul 19, 2004 | 9:46 am

Being a new convert to the concept of web standards, but having subpar HTML coding knowledge, I definitely feel the frustration of trying to replace my old knowledge with new. To further frustrate things, I’m finding that a lot of design techniques I use to arrange and present information efficiently on the page translate to code with difficulty. So not only are my attempts at proper coding getting the rug pulled out from underneath, but now I’m finding it harder to design.

It’s a tough pill to swallow. But… you don’t get better without medicine, right?

9. Andy Budd says… jul 19, 2004 | 11:02 am

I feel your pain Jason.

Too much stuff to master, not enough hours in the day. Wanting to do the best job possible, but business constraints reining you in.

Basically What Dave says. It does get easier, but perfection is an illusion in a field where the goal posts are constantly moving.

10. Todd says… jul 19, 2004 | 11:13 am

Sometimes I feel like it’s so hard to keep up with this ever-changing medium. The best you can do is just keep plugging along and adjusting to the flow of things.

I missed the boat on Flash but I really want to keep up with web standards and CSS but to echo everyone else - not enough time it seems.

11. Jeremy Flint says… jul 19, 2004 | 11:38 am

Wierd. I know I posted a comment on this yesterday, but it seems it didn’t take.

At anyrate, when I first started into standards, the only knowledge I had of CSS was how to make the link colors change when you hover over them.

I decided to do a few hybrid sites first, still using a simple table to arrange the content, but using all CSS for fonts, colors, borders, etc. After I got that down pat, I moved on to positioning and floating and such.

Using some of the layouts offered by some sites as tutorials, it makes it a little easier to pick up on how to use floats properly and such.

I am in a little different position in that I am THE designer here. Or at least, I was when I decided to completely change how I coded my sites. I still do everything from concept to design to coding the XHTML and CSS, so I really only had to convice the principle of the firm that it was a smart move. Although the first sites were kind of budget busters, the more I worked at it, the easier it got.

12. Matt O’Dell says… jul 19, 2004 | 1:46 pm

Thank you Jason for describing the plight of all of us Standards based designers.

The other day I had the fun of trying to explain my CSS layout of a page to someone who has only used tables. I realized that it was very difficult to try to describe how the CSS page was effecting the layout, along with explain some of the small hacks that wouldn’t make sense to someone learning the code, but are needed to render cross browser (for example, text-align:center; in the body tag to center the content on a page).

Tables were so easy to use when I discovered them, and even the most novice design would be able to figure out tables design in a matter of minutes. But I know that we will all agree it’s taken us much longer to get a handle on CSS.

Now it’s my turn to promote standards based design in Chicago (I have not found one company yet that does this). We will never be able to master everything, nor can we win everyone over with our methods of designing. These are just some things we have to live with unfortunately…

13. Peter Asquith says… jul 19, 2004 | 5:41 pm

You’ve touched on one of the biggest frustrations I’ve had. That is, not being able to revisit legacy coding, due to budget or time constraits, when a better job could be done knowing what you know now, or because the client no longer insists that the site support Netscape 3!

The dam simile is strikes a resounding chord, by the way!

14. Jim Amos says… jul 19, 2004 | 6:13 pm

“The thing that really gets to me, and this is that part of me that gets pissed off at inefficiency, is that there is neither the time or the money to clean this stuff up and consolidate the code.”

I feel this too, even as a freelancer. So far I’m pretty much disappointed with every job I’ve completed. The code/design is far from perfect, but time/financial contraints didn’t allow me to really achieve work to the highest standards. My clients don’t want to pay me much or allow enough time to do a thorough job. It’s their loss - though of course they don’t even know it.

15. Jeremy Flint says… jul 19, 2004 | 7:03 pm

I understand your pain Matt.

When I try to explain CSS, I usually use a metaphor of boxes. If you think about it, you are basically using lots of boxes (div’s) to hold your content, then using the css to position to boxes. That usually works pretty well. I don’t really go into hacks unless I have the time and feel that it would be beneficial to the conversation.

16. John Pull says… jul 20, 2004 | 8:27 am

Great article, Jason. Lots to think about.

The old maxim seems to apply: Don’t let the BEST get in the way of the GOOD.

I’ve been promoting semantic markup non-stop at my day job in Washington DC, and getting a good response.

I read the relevant books and articles almost non-stop. At one time I was known for always carrying a volume of Proust or Palahniuk — now I’m better known for Zeldman and Cederholm.

That’s fine — I love the final benefits of the process. Essentially this: I maintain two legacy sites with several thousand pages each, and initiatives to redesign the site are Army-style, i.e., “hurry up and wait.”

With semantic markup I can conduct sitewide rearchitecting of the code without changing the look and feel. It’s going to take several months, but sometime next fiscal year, when my team is tasked with redesigning the site, we will have the majority of the grunt work completed.

This is a huge bonus, because we’ll certainly NOT be given an adequate amount of time to complete a redesign once we’re instructed to do so.

But here’s where I got the cold chills while reading Jason’s essay. I love semantic markup and web standards, so I feel like I should be using it on ALL my sites, freelance and personal. And no, there just aren’t enough hours after the 8-to-5 workday to go back and retrofit the sites that I love so dearly.

When I finished reading JSM’s essay, and took a couple walks around the block, I finally realized I had to massively rearrange the priorities of my to-do list. That kinda sucked. I had this dream of total order, total compliance, and there was a lot of comfort in it.

But those were priorities that constantly made me feel like I was behind (because I was) and might never finish (because I likely wouldn’t).

Tables, for me, weren’t the easiest thing in the world to learn, but I had no choice so I slogged it out.

When I can do CSS in my sleep, I’ll be like Zeus, and it will be brilliant. And I wish I were there now, but I’m not.

I’m extremely lucky that my day job allows me to hone the CSS skills; I just have to get used to the fact that I won’t be able to nimbly apply those skills to the fun projects for a long time.

17. Alexis Bellido says… jul 20, 2004 | 9:46 pm

This is what many of us, web standards conscious designers, experience everyday. How many of you have thought: “If only days had more than 24 hours!”

Jason forgot to mention that after working, learning and more working we now have to write our blogs! , of course this is great because we can share our experiences as web designers.

I suffer, too, budget and time constraints. I am currently working in a low budget site for a customer but I have an annoying “this could be better” sensation. My customer is happy with results but you, honest designers, know when you could have done it better, of course I won’t work more for free.

At the end of the day I think the most important thing is that we are thinking, and sharing, about this, working hard to know more and offer better sites to web surfers.

18. Steve Wade says… jul 21, 2004 | 6:11 am

Oh man! I’ve just opened the parcel not 10 minutes ago to read my *brand new book* on designing sites using CSS instead of tables. It made sense, I was happy.

“I’m making progress” I thought. My fears stowed, “I’m going to reach new heights and new standards”…

Now I’ve gotta go look for the damn return slip because I hear EXACTLY what you’re saying.

I already cut good markup and my CSS validates. Why don’t you take your standards and.….….….….

Dammit. I was just about to move out of my comfort zone… I’ve been saved!!

Or have I… Hmmmm…

19. Dan Mall says… jul 21, 2004 | 11:28 am

I’ve always hated participating in commentaries, but how could I resist after an article like that?

Jason, I remember you once said to me, “I know enough to be competent but not enough to be dangerous. . .” I’d bet my Zeldman book that we all know exactly what you mean and can identify with that. However, I can suggest that being competent actually does make you dangerous. As long as you stand by what you believe in, whether it be tables (although I’m not sure why it would be that way) or CSS or Flash or anything, you become viewed as dangerous.

I would even go so far as to suggest that not knowing everything makes you even more dangerous. Think about it: if you knew everything there was to know about CSS. what would stop you from using an unnecessary rule just because you can do it? Code can be a thorn in the designer’s side. Knowing enough to express yourself? That’s what makes you dangerous.

20. Ducky says… jul 21, 2004 | 3:19 pm

All I can say really say is dido. I feel the same way a lot of the times. There are so many things to learn and not enough time. But, does that mean we should give up? It’s kind of like if you’re a Christian you should strive to be like Christ. But can you ever be 100% like Christ? No! Does that mean you should stop trying? No, you should never stop trying to be like Christ or stop learning whatever you can in regard to your profession.

I’m a firm believer that Creativity is what drives inovation. I had a client that had an idea for a Flash site. I went a head and took the job even though the most flash I had done was making a couple of Flash introductions. The result was that I had to spend a lot of time learning that I couldn’t charge the client for but in the end I was a lot better off learning as I went. And the result was that I finished my first Flash site with a statisfied client and I learned how to make websites in Flash.

21. Sunset says… jul 21, 2004 | 4:37 pm

I know exactly how you feel. I love CSS, but I am constantly in a state of flux, so to speak. I currently am working on Java, PHP, and MySQL because I need to get a handle on some of coding involved because I will have to learn ASP and IIS in about 2 months. I hope technology never stops changing and evovling,, just slow down a bit so I can catch up. heh!

22. David Cogley says… jul 21, 2004 | 5:16 pm

Excellent blog design, writing style, description of business realities, and technical points.

This is my first time reading your blog. Do you respond to comments? Why are you using transitional and not the strict DTD? I find that strict coding is, in fact, easier than transitional.

23. DonH says… jul 21, 2004 | 10:13 pm

You are still of the mindset that you must be able to keep control over every aspect of your creation. But you are also learning that this is not possible.

The key is to know enough about the underlying processes to not be fooled by fast talking hacks.

I became infamous where I live for knowing a lot about a lot but not enough to specialize. Starting out as a main frame programmer back in the early 70s I learned the basics. That foundation has served well over the years.

Now, I am hired to solve problems nobody else can by using multiple technologies. Like making Filemaker 3.0 print greater than 10 pages by exporting data to a tab file then calling a batch file that opens MSWord and runs a macro to blah blah blah.

Then I am off to fix a server that has run out of disk space because they didn’t limit the event logs and they now take up 100 gigabytes. sheeesh.

I know that people now ridicule building sites using tables, however, if I can crank out a website in a day using tables for design or take a week using CSS, guess which I am going to use?

You learn this lesson when you are an independent contractor or a Project Manager. Get the job done. Deliver the goods to the best of your ability within budget and on schedule.

Will your code be clean and tight? Probably not. You know when that bytes you in the butt? When you have to go into a site somebody else built and figure it out.

Try wading thru 10,000 lines of ASP to change 1 item. argggggh.

In closing, remember, who determines what “best practices” are? Sometimes best practices aren’t best.

24. Jonathan says… aug 8, 2004 | 4:00 am

Boy, could I ever relate to most of what you said on your battles as a web designer. I have gone through all the same battles over quality of design, the best methods for presentation, and how to make a buck through all of the design struggles!

I went through the same concerns about being knowledgeable about many technologies and yet the master of none. I decided to try focussing on one or two methods of presentation such as Flash.

To be honest, I can’t really keep up with all the latest new ways to present web pages. In the end, I’m like you in that I want to simplify my workload, create interesting work, and yet not devote all my time to design!

I’m open to learning new ways to present web info / design, but I also don’t want to get caught on learning all the latest cool methods.

Great to hear others going through the same struggles.

Designer of web stuff since 1996;)