Web site design
2005-08-05 17:12Over the last couple of days i've been helping
naiyah set up hir Web site. For the most part, it's been an entertainingly challenging experience, particularly learning how to use a PHP-based XML parser to gather particular information from an RSS document. One of the less entertaining aspects of the experience was trying to reimplement part of the site to use CSS instead of tables for layout1. The problem is not CSS itself; the problem is that Internet Explorer doesn't implement the CSS1 standard properly. Most other contemporary graphical browsers - Firefox, Mozilla, Opera, KHTML-based browsers like Konqueror and Safari, Gecko-based browsers such as Galeon - do a far better job of implementing the CSS1 standard, and also make (at least) some attempt at the CSS2 standard. So i've had to create three stylesheets for the site: one containing the CSS that works in all (or most) browsers; one containing CSS to achieve specific effects in standards-hostile Internet Explorer; and one containing CSS to achieve those same effects in standards-friendly browsers. Not only that; but IE's implementation of the CSS Box model is so broken that it appears i'm going to have to do some ugly kludges to correctly produce
naiyah's lovely layout in IE.
Summary: IE is a pile of junk, not only because of its failure to support Web standards, but also because of its security vulnerabilities and its lack of features now commonplace in other browsers (e.g. tabbed browsing - although IE7 is going to have this feature). If you're reading this using IE, i strongly urge you to start using a different browser - Firefox might be a good place to start.
1. So why use CSS for layout instead of tables? For me, there are two main reasons:
Summary: IE is a pile of junk, not only because of its failure to support Web standards, but also because of its security vulnerabilities and its lack of features now commonplace in other browsers (e.g. tabbed browsing - although IE7 is going to have this feature). If you're reading this using IE, i strongly urge you to start using a different browser - Firefox might be a good place to start.
1. So why use CSS for layout instead of tables? For me, there are two main reasons:
- Maintainability. If you use tables for layout, and then decide to change your layout, you have to go through and manually change every page; whereas if you use CSS, you only need to change the contents of the relevant stylesheet(s). Much less work, and much more likely to result in site-wide consistency of layout.
- Accessibility. Unfortunately, many - if not most - Web site designs are not particularly usable (or not usable at all) for those people with disabilities. For example, blind people can use screen readers such as JAWS to have the computer 'read out' the contents of a Web page to them. Screen readers read tables row-by-row, which can often result in navigation links being interspersed with other page content. Designing a Web page so that it makes sense if it is linearly 'read out', and then using CSS to perform layout, can reduce (and sometimes eliminate) this problem.
no subject
Date: 2005-08-05 08:45 (UTC)no subject
Date: 2005-08-07 10:46 (UTC)no subject
Date: 2005-08-05 09:03 (UTC)no subject
Date: 2005-08-07 10:46 (UTC)no subject
Date: 2005-08-05 13:06 (UTC)no subject
Date: 2005-08-05 13:13 (UTC)no subject
Date: 2005-08-05 13:37 (UTC)Snerk!
Signed,
A Dedicated Firefox User
no subject
Date: 2005-08-06 03:10 (UTC)