David Emery Online

Warning: Wide Load

Recently A List Apart, one of the top css/web site design sites, went through a major redesign. First off, the site does indeed look brilliant, with a sophisticated look that fits in well with the vast amount of content contained within.

However, they made a design choice that I think is so fundamentally wrong that I felt I needed to weigh in on as the issue is so important (even though it’s been discussed at length elsewhere):

The site is designed to fit on a screen 1024 pixels wide.

Now, why is this a problem, I hear you ask?

Currently, most people design their sites for screen sizes of 800 pixels wide (which equates to 771px after you take into account for scrollbars and other window furniture) and this was because 800px x 600px used to be the most popular screen resolution.

These days, less and less people are using screens of 800×600 with most people using 1024×768 or greater, so I’m sure the guys behind the A List Apart redesign looked at their stats (you can tell what size screen people who browse your site use) and decided that the amount of people using 800×600 was so small that they weren’t worth worrying about.

Wrong, wrong, wrong!

The problem comes really very quickly: If, for whatever reason, you don’t have the browser window maximised to full screen, you will almost certainly have to scroll left and right – which is unacceptable to me as both a user and a website designer.

There are many different reasons for not having the window fully maximised – As you can read below I use SafariStand with Safari on a mac which gives me a sidebar with graphical tabs, and hence I have to scroll horizontally on A List Apart. Sidebars are pretty common; IE on the PC uses them for favourites, Firefox for history and they are a feature of pretty much every browser out there.

Also worth remembering is that the user may not have their browser maximised anyway – I’m pretty sure that IE on the PC doesn’t come up maximised by default, and Safari on the mac certainly doesn’t (and don’t forget, most people to change the defaults).

The reason for standardising on 1024 wide is simple, however: design. Designing so that your site works well on both a small 800×600 screen all the way up to a 2560×1600 30” Cinema behemoth is, however, a big challenge (easily the hardest thing to do in web design).

But, what can we do about it?

Obviously, using a fluid css based layout is the first place to start (please ignore the fixedness of this site – it’s overdue a markup re-vamp), with at least a elastic content column so that you utilise all the available space. Next, though, to the magic:

We’re onto Web 2.0 now, right?

(If you haven’t heard of Web 2.0, it’s the latest buzzword going round at the moment, but refers to the latest set of web techniques such as advanced javascript, css and a host of other things).

So how about using javascript for flexible layouts?

It’s easy to get the width of the browser window in javascript, which enables you (with a bit of light scripting) to feed the user different layouts and graphics depending on the window size. For example, as standard (for people either without javascript or with small windows) you could use small graphics that fit onto a 800px wide screen. Then, you could resize the image up depending on the window size, dynamically loading in higher res versions depending on the size used.

Or instead of resizing the images, move them about to fit the space better (changing them from being a 2×2 square arrangement to 4 in a row, for example), or maybe increase the font size of certain pieces of text.

There’s an almost unlimited amount of variation you can do using javascript – making it easy to take you design, decide what you’d like it to look like at various sizes and implement the optimal solution for each one.

Then everyone can look at your website and have the best experience possible, and surely that’s a good thing?

Saturday 8 October 2005

Comments

eric said at Dec 19, 07:54 PM:

Been browsing the archives here, and I agree completely. I’ve got Mint installed on my website, with the ‘window width’ pepper, and guess what? 30% of my visitors’ browsers are sized smaller than their actual resolutions.

Developers need to smarten up if they insist on making a wide or fluid layout.

robert said at Dec 20, 04:31 AM:

hi there all

i felt compelled to put my tuppence worth into the mix…

as i feel that websites optimised for 800×600 look ridiculous on decent sized screens that have become affordable hence ubiquitous in recent years
– wasn’t 800×600 native on 14” CRTs anyways? (i used to sell them back in ‘93 – well over a DECADE ago!)

in today’s computing environments where 17” is the now the well established standard (at our office the smallest screens are now 19” LCDs) i personally would encourage web designers/coders to ‘up the ante’ and optimise for 1024×768

slightly oversimplifying the scenario i know, but it’s like only making low grade/octane petrol available for the odd model-t ford driver out there on the roads of today

...comments?

David Emery said at Dec 20, 07:36 AM:

Don’t get me wrong – fixed width sites that optimise for 800×600 look appalling on larger screens.

Personally, I think the way to go is to use a fluid layout, optimised to 1024×768, that works happily on 800×600 without horizontal scroll bars.

Using a fluid layout, possibly in combination with javascript image scaling, is the solution to this problem, but it requires a lot more effort and skill from the web developer.

Also, the main problem comes from people that don’t have the browser window filling the whole width of the screen – if you’re on 1024×768 and have some form of sidebar on your browser window, for example, on any site that uses a fixed width optimised for 1024 wide you’ll get horizontal scroll bars.

mistersquid said at May 10, 10:24 PM:

Quoting: “It’s easy to get the width of the browser window in javascript, which enables you (with a bit of light scripting) to feed the user different layouts and graphics depending on the window size. For example, as standard (for people either without javascript or with small windows) you could use small graphics that fit onto a 800px wide screen.”

This is your recommendation? that A List Apart use Javascript to detect browser width? Could you please tell me how this is better than a fluid layout?

The problem with you self-nominated “designers” is that all of you are trying to control the experience of your users rather than provide an experience for your users.

Drink your own brew and fluidify your layout. Fixed-pixel layout is awful. Variable layout according to a few “standard” widths (your Javascript solution) is even worse. What is up with the resistance to fluid layout?

David Emery said at May 11, 08:18 AM:

Ah, I think you may have got the wrong end of the stick; what I’m talking about is using javascript to enhance fluid based layouts, so that images scale as well as the text being fluid.

For example, check out this page on the 4ad site – we wanted to display the pictures as large as possible, but due to our large side columns normally that would have ment a pretty small image; instead, we dynamically scale the image using javascript depending on the window width.

Rest assured, a fluid version of this site is well underway…

Chris Dunphy said at Jun 16, 09:17 PM:

I can’t believe this is still a talked about issue. Fixed width design is BAD now and was bad 10 years ago.

Over the years I’ve had the hardest time hiring web designers who get this. I’ve had some even tell me I was crazy for specifying sites that needed to expand to fill a large window as well as 800×600.

New tools like iWeb and Sandovox continue to propagate pretty looking but annoyingly fixed width design templates.

When is somebody going to get this right?

Comments are turned off for this article.