Note: The following series has been consolidated into one article here.
- Dump the WYSIWYG
- Do not use markup for presentation
- Include a proper doctype
- Validate your markup
- Validate your CSS
- Build for Firefox and hack for IE
- If you have a problem ask for help
Let’s go through each of these steps in greater detail
Let’s face it. You can either be a part of the problem or a part of the solution. If you are allowing an application to turn out your markup then, unfortunately, you are a part of the problem. Yes, this includes Dreamweaver and GoLive. I am thoroughly convinced that these “web page editors” are for amateurs and people that want to design a web page but don’t really know what they are doing. These apps are fine for designers that aren’t coders and don’t know XHTML as long as they don’t publish it to the world. Hire a coder to clean up your code or take the time to learn how to turn out proper markup.
Tables are meant to be used for one thing and one thing only and that is the display of tabular data. Please, do not use tables for layout. It is much better left to CSS. Using tables for layout is a messy hack often used to “get pages to look the same in all browsers”. Unfortunately, it doesn’t always work. Using tables for layout causes issues with accessibility and makes updates labor intensive. It also increases the size of your web pages which increases load time and bandwidth use.
Font definitions should be included in the CSS file so please throw the FONT tags on the trash heap and let’s move on to the 21st century. Using FONT tags also increases the size of your web pages which increases load time and bandwidth use (déjà vu?).
You start your sentences with a capital letter; start your HTML with a DOCTYPE. It’s just basic grammar. – Mark Pilgrim from Dive Into Accessibility
Using a complete doctype will switch your browser into standards mode. This will cause it to render the page exactly as you have instructed it (which may look awful but at least now you can point the finger at yourself and not the browser). Without a proper doctype your browser will switch to quirks mode or as I refer to it “amateur mode”. A proper doctype with an XML prolog will also cause some browsers (IE) to switch into quirks mode so do not add an XML prolog.
Developing a website without validating is like running around with a blindfold on. As soon as you ask for directions, don’t be surprised if the only answer you’ll get is “take your blindfold off”. – some guy named Jim
Validate your markup here
Validate your CSS here
Firefox is a standards aware browser. The authors are actively involved in squashing bugs and making it work the way it should. When FF is switched to standards mode with a proper doctype everything works as expected.
IE is the bane of every serious web designer. Some things you are going to want to look up are
- peekaboo bug
- line-height bug
- guillotine bug
- duplicate character bug
- italics bug
- double float margin bug
- three pixel jog
- escaping floats bug
- creeping text bug
These are addressed at Position is Everything
The steps before this one are necessary. Good clean code is hard enough to debug. Code with bunk markup and presentational hacks just throws more hay on top of your needle. Taking the steps above before asking for help shows that you are at least trying. To drive that point home here is one of Aesop’s fables:
Hercules and the Wagoneer
A delivery man was driving a wagon along a country lane, when the wheels sank down deep into a rut.
The old driver, dazed and confused, stood looking at the wagon. He did nothing but utter loud cries to Hercules to come and help him.
Hercules, it is said, appeared and thus addressed him: “Put your shoulders to the wheels, my man. Try with all your might to move the wagon back onto the road. Never pray to me for help, until you have done your best to help yourself, or depend upon it you will henceforth pray in vain.”
Moral: Self-help is the best help