c-- styles for logos and headline links do not modify internet, red, or black styles -->
|
|
|
|
|
|
Hitting the Spot Typically, a block of content is contained within <DIV> tags. Imagine, then, that you would like to create
a small block of content -- an image plus a mailto hyperlink: To position this block, however, you must tell the <DIV> block to use a style sheet. A style sheet, as
you may know, defines display characteristics. Style sheets can either be pre-defined, and applied to tags as style
sheet classes, or defined on-the-fly. Typically, when using CSS Positioning, you define the block's style on-the-fly.
We do this by using the STYLE attribute for the <DIV> tag. The STYLE attribute contains a string which lists
each desired style property and its value. For example: <DIV ID="mailblock" STYLE="position:absolute;
width:auto; height:auto; left:400px; top:50px; background-color:white"> In the above example, we've first added the ID attribute to assign an identifier to this content block. This
may become useful later when manipulating this block using JavaScript. Next, the STYLE attribute contains a list
of property parameters and values. Notice that a colon separates the parameter (left) from the value (right) and
a semicolon separates each parameter/value pair from the next. In this case, we've specified that mailblock
should be absolutely positioned on the page (meaning that it is not fixed relative to the position of any other
page elements), with automatic width and height, 400 pixels right from the left edge of the browser's content window
and 50 pixels down from the top edge of the browser's content window. Simple enough -- except for one bit of trouble: we don't know the size of the user's screen or browser window!
Thus, we don't really know where 400 pixels to the right will land this block relative to the rest of the page.
This could result in an ugly layout. The solution to precise, but adaptable, layouts is to use relative positioning.
Imagine, for example, that we want mailblock to appear slightly indented leftwards from the upper-right
corner of the page. To achieve this position, we will create a two-level <DIV> block -- a parent and a child: <DIV ID="mailblock_parent"
ALIGN="right"> In this example, the parent <DIV> block contains, as a child <DIV> block, the content for the mailto
link and image. The parent block is aligned to the right edge of the page. The child block, which contains the
actual content, is dynamically positioned relative to the parent, 10 pixels to the left of the parent's left edge. Clearly, positioning your block of content depends upon the specified STYLE
properties. We seemed to pull our example properties out of a hat -- position,
width, left? Where did we get these from? Well, several documents on Web contain
references to the positioning properties available for style sheets -- two worth
reviewing are Microsoft's
CSS Attributes Reference (under "Positioning Properties") and
Netscape's Defining Positioned Blocks of HTML Content. Below we've included a handy chart summarizing the common STYLE properties which you may want to use when using
the CSS syntax to position blocks of content.
Employing the various STYLE properties gives you powerful control over the position and look of the blocks of
content on your page. Conceptually, then, when we think in DHTML we think of a page as made up of one or more blocks.
Of course, this is not immediately evident to the viewer, who essentially sees a flat Web page, without realizing
that several smaller blocks of content are positioned here and there to create the overall effect. Still, the question begs: how is this dynamic? Precise, yes, but dynamic? Consider the fact that, now that the blocks have been put into place, you can -- at any time -- change their
properties. Position, background, clipping region, z-index -- it's all plastic, with the help of JavaScript, and
that is the reason to be excited! Putting the D in DHTML> |