|HTML or CSS|
Weighing up cross browser support over web compliance
I know this topic has been discussed many a time, but personally, I am interested to know what web designers that design many sites, and try to keep their costs down for the customers think.
I started out designing sites with html and tables for a while, then I found out more about the whole 'keeping information sepperate from design/layout' issue.
I know that web compliance says that using css to style the pages and html to input the information, but I find that getting the design to be cross browser flexible is quite a struggle, especially if you don't have access to each browser and each version, and there are many!
Also, upon a search, I found that the majority of web designers use tables to do the whole site, and just use css to 'finesse' the design. And these sites certainly don't get penalised by the search engines for not being 'web compliant'.
What I want is to design websites for customers who want a web presence without paying a lot, and for that website to be cross browser compliant without spending a lot of time on it. Time is money after all.
Thanks for any feedback.
Purists will say use CSS, and struggle with the design until it works.
As even the major browsers do not handle css in the same way, I'd say "Not yet".
It took nearly 10 years before even tables got loaded in exactly the same way, expect it to take five years before IE behaves on css.
Trouble is, you could tweak for a week, and get it right, then add some new content and have to start all over again!
I'll bet there are more useful ways to spend your time; concentrate on accessibility issues where you can, and use css to avoid code bloat with most everything else - but let the browsers grow up and behave before trusting them with page layout.
I've seen way too many sites with mangled pages due to css layout, including major sites who should know better. Part of the problem is the designer assumption that we all have big screens and use full-screen windows. Try a smaller window, and watch most css designs overlap all over.
Well, speaking as someone who designs sites for small businesses, on moderate budgets fairly often, for me at least CSS is a massive time saver over designing with tables.
The initial hump is the problem - getting it right the first few time. After that, you basically have a stock of layouts which just work, and which with little effort can be reused on sites that look completely different from each other just by altering a stylesheet.
The cross-browser issues can largely be addressed by keeping it simple - I don't use any hacks, just stick to what works on all browsers and degrades acceptably on very old ones. There is plenty of scope there without making life unnecessarily difficult or being unduly curtailed in what you can do.
|After that, you basically have a stock of layouts which just work, and which with little effort can be reused... |
I agree - that's when css layouts are practical, using the "proven template" approach. With more custom work, I have found it remarkably time-consuming. Tried for 4 months in 2005 and ended up with 4 relatively small sites that each took more than twice the time I had budgeted. So I decided then to return to my "tables for the basic framework" approach.
|...And these sites certainly don't get penalised by the search engines for not being 'web compliant'. |
This is true, however, one thing to watch out for is tables within tables. Nested tables violate accessibility guidelines, which is a very important consideration.
Absolutely, if you feel forced by your ability or the content to use a table, take the flack from purists and do it. :-) Pages still validate and the work gets done.
I am starting to be a 'css purist' as I like the ability to change layout by just changing a style sheet, but the time to set up those first few design layouts, especially if you don't have direct access to the many different browsers to see what the page looks like, takes a long time.
And I certainly can't say that I am a css vetran.
I think I will stick to using tables for the main setout, but steer clear of tables on tables, using css to do the smaller design setout stuff.
It's nice to hear a balanced view at last.
I think one thing that gets overlooked in the discussion is the ease of changing a layout with CSS once you've gotten it to work. At the moment I'm working on a site for a friend of mine who is a graphic designer, and she keeps insisting on layout changes even though half the site's pages have already been coded. Because I used CSS for layout (and spent a lot of time getting it to work on all the relevent browsers, of course), I simply make a couple tweaks to my external CSS file and, presto, every single page looks like she wants it.
Had I used tables (which would have been much easier initially), the problem would have been twofold. First, it would have been a headache to completely revamp the complicated nested table structure of the original design every time I needed to make a change. And even once I'd gotten the tables all rearranged correctly, I would have had to go through every single html file again to make every single page look right. Now, the second problem probably wouldn't be a problem if I were comfortable using PHP or something similar, but to those of us who are still wet behind the ears as far as web technology goes, CSS can still be a huge timesaver in the long run, even for just one site.
I have seen that CSS will require more up front work to build but updating and maintaining the overall html will be much easier and worth the time.
I say go with what works for you, as neo said above, he goes with css because he's not too familiar with php and it allows him to make changes. I do my layouts in html (obviously use a lot of css though) and use php includes to do multiple page editing. But thats my personal choice, because I'm not familiar with doing a full 'css' layouts and what you mention about 'keeping information sepperate from design/layout' is really guidelines more than commandments.
It does depend a lot on the nature of sites though, mine are mostly MySql based so the content is already seperate from the layout.
I tried, in 1995, to start a web design business. Didn't go because folks told me the internet was a load of hype and not going to amount to anything. So I left it, except for my own sites.
I've just now come back to it (last Nov.) and the first thing I did was spend hours reading--joining forums, updating my O'Reilly books.
I dove into CSS with a vengeance. And, it was painful. Initially I aimed for compliance with W3C and the IE6, IE7, and FF2. Those were my standards. I read until I was bleary-eyed. Cursed endlessly.
Finally, I was fairly competent; still had some tweaking to do with every site, but feasible. Then, just a couple of days ago, working with someone who is using IE 5.x, I found that everything was garbage to him. So I bit the bullet and spent about 14 hours trying to make my perfect initial page work in IE 5.x. But I was using too many hacks.
I then remembered reading about conditional stylesheets. I did some research (esp. here) and solved the whole issue in about 30 minutes. And, it is solved once and for all. Should I need to do that again, I have the tools in my arsenal now.
My point is -- start out right, eat the time at first. I don't charge my clients for learning time when they want something I haven't yet mastered. My reasoning is, I'm selling myself as a web designer; if a client wants something I don't know, that "something" is something I SHOULD know. Each site will get progressively easier. Read, read, read. Even stuff you aren't applying will stick in your mind and may rise up when you hit a wall.
The first time you have to make some comprehensive change to a site that you have built with CSS, you will be patting yourself on the back.
I agree with everything abbeyvet said.
I've been designing web sites since 1997 and I've worked on the very small one page web site to projects running into hundreds of thousands.
CSS is a learning curve but once you have a few sites under your belt you will quickly be using snippets from each to build new sites.
The one big issue is cross browser compatibility. I'm the same as abbeyvet in that I very, very rarely use hacks and I have learnt (through trial and error) how far I can push a design.
My current employer is great because I have a number of laptops and macs around me with various OS's and browsers so I can test in browsers 10 years or older to make sure what I've done works.
I haven't used a tabled design for 6 years and I know I can design quicker now in css that I could using tables.
|Didn't go because folks told me the internet was a load of hype and not going to amount to anything. |
Don't care what "folks" say. Don't even do the opposite of what they suggest. Don't even ignore them ;)