Let's get technical.

Very likely you're approaching your site with the idea of viewing it on a graphic browser on a home computer. You've got some idea and appreciation of text and audio browsers, and you've heard of small screen wireless devices, but you're not starting with these in mind. And you're trying not to get confused by doing too much at once.

Because it's intimidating to think about nine media types and the horrific variety of browser capabilities within each. That's okay. You can add style for these other browser types as you desire, and as you become familiar with them -- because you're creating your 'page' from a core that doesn't lock any browser out. That's the key and point of this entire essay. Building from a core that is not device dependant in any way.

So what's in the core? The very basics. Your text, absolutely essential images, and linkage. That's the HTML file. Don't dress it up beyond heading and paragraph tags. Make sure the content makes linear sense, top to bottom. Package it so your message is clear to the most simple text browser.

... I've come to realize that most people today have never seen a text browser, so are a little vague when a web article like this refers to one. That's fine. People like me should get with the times. To see your HTML in raw glory, turn off CSS. If you're using Opera, it's dead easy. Look up and you'll see one button marked 'Author'. Press it and it'll change to 'User' and this page will look like a text dump. This feature is so people can make and use their own style sheets so they can specify large text and such like. But at default there's no CSS, so it's a handy test tool.

[There's some way to do this in Explorer and Netscape too. Frankly it's probably faster to download the tiny and fast Opera browser. Opera is a great tool for testing your pages as you build them because it's fast and it sticks very close to the W3C specs. I like the browser. I am in no way affiliated with Opera and I'm quite nasty to them elsewhere over things they're screwing up. So, yes, I'm biased, but with both hands.]

Perhaps the main method people lay out their page is to see it as done and then try to build a structure to support this. That's natural, since you see a lot of pages before you try to build one, and it's reinforced by a brilliant and out of date hack that let us create an underlying layout table in any shape whatsoever.

But if you view a table-hack page in any browser other than what's common to PC and Mac, you'll find the content is scattered to the wind. Like I said, it's a hack, and it's out of date. The web isn't just 15" CRT monitors anymore, so no more table tricks.

However. If you visualize your 'page' as a page and start tossing CSS boxes around to make your site look like CNN, you're in for a lot of angst, and that's so 1990's.

There's reasons for this. Two of them. First being that CSS boxes do not react the same as rigid table cells. They're much more complex because they do more. So you have to take some time to learn what the different box types do and when to use them.

The other reason is our state-of-the-art browsers suck. The combined resources of MS, AOL, and Opera have failed to give us any browser that fully supports a 1996 spec, and they have succeeded in giving us a series of browsers that each have different rendering bugs. This stupidity is a failure of management, not engineering. But either way the fact is the web isn't waiting for this trio nonconformity to catch up. Meaning we, web developers, have to make things work using only the parts of CSS that run on all of them. Meaning you need to keep your eyes open and read a lot of tutorials beyond just the W3C spec.

That completely stinks, yes. Some nice tutorials are mentioned in the menu of this page. You should also check out the WaSP, an outfit trying to do something about the mess. Some loud public embarrassment for MS, AOL, and Opera might be a good thing too, since they don't seem to read bug reports. Use whatever opportunity you can find.

But back to building a webpage today...

The Web Standards Project