The assignment was to go to the W3C Web site and locate information on two new
positioning features of CSS2. Then to check both the Microsoft and Netscape sites
to see if either of their fifth-generation browsers would support the positioning
features I chose to examine.
I took this bit of information from the W3C site itself.
Check out A Quick Tour of CSS2 for more infomation.
The idea behind positioning is fairly simple. It allows the author to define exactly where element boxes will appear, relative to where they would ordinarily be -- or relative to the browser window itself. The power of this is both
obvious and surprising. What shouldn't be too surprising is that this is the part of CSS2 that both major browsers
are currently trying to support.
Unfortunately, positioning support is sketchy enough that it's almost impossible to provide working examples. But
the effects are easy enough to describe. Let's say you have a page laid out in a three-cell table something like this:
|Cell 1||Cell 2|
Once you break it down, of course, you have three chunks of information -- the contents of each cell. So let's get rid
of the table markup, and wrap each chunk of information in DIV tags. Now we simply add some positioning rules,
and discover that the page looks just as it did to begin with, except without any table markup whatsoever!
We can take this further. Using positioning markup, it is possible to recreate frame-type layouts without any sort of
frames markup whatsoever. With just a few declarations, all of the content in a single document can be arranged in
a way that only frames could do before -- and all of the information is in a single page. No more messing around with NOFRAMES tags and duplication of content across multiple documents. Positioning can take care of all of this!
In my opinion, this is the single most important new area of the CSS2 specification. It can make the job of Web authors much easier, allow for document display in any browser, and make it much easier for search engines to index documents.
It is hoped that both Microsoft and Netscape put implementation of this section of the CSS2 specification very high on
their respective "to-do" lists (right below creating a full, stable implementation of CSS1).
In a sort of accompaniment to the positioning properties that let you set an element's horizontal positioning, z-index lets
you determine an element's "vertical" position. Since (thanks to positioning properties) elements can overlap each other,
it makes sense that you should be able to define which are "in front" or "on top" of others. That's what z-index will do.