The ILAYER element (also known as an 'inflow' or 'in-line' layer) was
created by Netscape and allows an author to define precisely positioned
2-dimensional layout consisting of overlapping layers of transparent
or solid content on a web page. All the content between the opening
and closing ILAYER tags can be treated as a single item of content
that can be moved and altered in various ways. ILAYER elements that do
not specify positioning will appear within the flow of a document (like
an image.) If positioning values ARE used on this type of
layer, the positioning coordinates are relative to where the layer would
ordinarily occur in the document flow. The other tag-based method of
defining a layer is through the use of the 'out-of-flow' or 'positioned'
LAYER element.
Layers can have a stacking order that allows a virtual third
z-dimension to be defined. Using this, layers can appear on top of
other layers. Layers can also be transparent or solid; if
transparent, the content of underlying layers shows through it.
As if that wasn't enough, background colors or tiled images can also be
specified for a layer (setting these attributes for a layer will
negate its transparency property and layers below it will be obscured.)
Description:
This attribute specifies the name of the layer that will occur directly
above the current layer in the layer stacking order (z-order.) It
overrides the default behavior of placing new layers on top of all
existing layers. Only one of the Z-INDEX, ABOVE, or BELOW attributes
can be used for a given layer. References to layers not yet defined
result in default layer creation behavior - i.e. the new layer will
be placed on top of all existing layers.
Values: An existing valid alphanumeric
layer NAME value.
Description:
This attribute specifies the name of the layer that will occur directly
below the current layer in the layer stacking order (z-order.) It
overrides the default behavior of placing new layers on top of all
existing layers. Only one of the Z-INDEX, ABOVE, or BELOW attributes
can be used for a given layer. References to layers not yet defined
result in default layer creation behavior - i.e. the new layer will
be placed on top of all existing layers.
Values: An existing valid alphanumeric
layer NAME value.
Description:
This parameter specifies the clipping rectangle (viewable area) of
the layer, which can be less than the width and height of the content
of the layer. If the CLIP attribute is omitted, the clipping rectangle
of a layer is the same size as the HTML content of the layer. A layer
will expand to contain all of its content by default.
Values:
A comma separated list of integer values representing the absolute pixel
coordinates of the rectangle. Origin values are at the top, left corner
and grow as one moves down or to the right. Format 1:CLIP="left,top,right,bottom" Format 2:CLIP="right,bottom" ['left' and
'top' values default to zero.]
Description:
This specifies the coordinate position of the left side boundary
position of the current layer in relation to a parent layer if present.
if no parent layer exists, the value is relative to the main document window.
Values:
Integer values specifying screen position or an HTML scripting
expression to position one layer relative to another.
Description:
This attribute specifies the name of the layer in order to
identify or reference it from other layers or scripting languages.
Layers are unnamed by default.
Values:
An alphanumeric string. Must begin with an alphabetic character.
Description:
This attribute specifies what should happen when the ilayer's content
exceeds its rendering box and clipping area. A value of 'none' does
not clip the content, while 'clip' clips the content to its dimensions
or defined clipping area.
Description:
This specifies the absolute horizontal (X) coordinate position of the left
boundary position of the current layer in relation to the document window
(this differs slightly in definition from the LEFT attribute.)
Values:
Integer values specifying screen position or an HTML scripting expression.
Description:
This specifies the absolute vertical (Y) coordinate position of the top
boundary position of the current layer in relation to the document window
(this differs slightly in definition from the TOP attribute.)
Values:
Integer values specifying screen position or an HTML scripting expression.
Description:
This attribute specifies the URL of an HTML 'sub-document' to be inserted
in to the layer. The effect is similar to the IFRAME
element implemented by Internet Explorer.
Values:
Either an absolute or relative URL. All URLs should be URL encoded where required.
Description:
This specifies the coordinate position of the top boundary
position of the current layer in relation to a parent layer if present.
if no parent layer exists, the value is relative to the main document window.
Values:
Integer values specifying screen position or an HTML scripting
expression to position one layer relative to another.
Description:
This attribute specifies whether the layer is visible or not. A layer
will have the same visibility as its parent layer by default. Even if
the visibility of a layer is set to SHOW, a layer can only be seen if
there are no other visible, solid layers stacked on top of it. For top
level layers that are not nested inside other layers, a value of
INHERIT has the same effect as SHOW since the body document is always
visible.
Values: show
[Shows the layer] hide
[Hides the layer] inherit
[The layer will have the same visibility as its parent layer]
Description:
This parameters specifies the width of the layer's content. Specifically,
it controls the right margin of the layer for wrapping purposes.
Some elements may not be 'wrappable' (like images) and extend beyond
the width specified. Layer contents wrap at the right boundary of the
enclosing block by default.
Values: Positive integers representing a pixel width.
Description:
This attribute allows a layer's stacking order (z-order) to be
specified in terms of an integer. Layers with higher numbered Z-INDEX
values are stacked above those with lower ones. Positive Z-INDEX
values cause the layer to be stacked above its parent while negative
values will cause the layer to be stacked below its parent. This
attribute overrides the default behavior of placing new layers on top
of all existing layers. Only one of the Z-INDEX, ABOVE, or BELOW attributes
can be used for any given layer.
DTD Note: ILAYER is a nestable in-line element, much
like the SPAN element. I am treating the behavior as similar to SPAN. This
may be a questionable decision, but there will never be any official behavioral
interaction documentation, so who's to argue? =)
DTD Note: Since the DTD behavior is tenuous at best,
I have held off including the element in the Physical Formatting element
grouping. Consider the %Physical Formatting% group to contain the ILAYER
element if an inclusive behavioral model is desired.
Note: It appears that content pointed to by the SRC
attribute should be a complete HTML document.
Only Netscape supported this element in its 4.x versions. Netscape 6.x+
no longer supports this, so use of this element is discouraged. The same
capabilities are available with wider browser support via the
CSS
Positioning[-->Index DOT Css] properties.
Browser Peculiarities
[Test]
There is some odd behavior with forms and the LAYER/ILAYER elements.
If a LAYER/ILAYER element is nested inside a FORM element,
and any widgets for the form (buttons, text fields, etc) are contained
within the layer, they will not appear/be rendered. If a widget/field is
to show up, the containing FORM element must lie within the
same LAYER/ILAYER element as its widgets/fields.
Netscape 4.x does not correctly hyperlink to a bookmark (A NAME) that is
nested inside an ILAYER element from another document. It succeeds in
jumping to the document, and it does attempt to jump within the
document, but it appears to scroll the document to where the element
would be if it had not been re-positioned using the ILAYER (this may be
incorrect reasoning, but it definitely does not scroll to the point in
the document where the A NAME actually is rendered.) Hyperlinking to a
bookmark nested in an ILAYER from within the same document appears to
work correctly.
The OVERFLOW attribute is curious - if the attribute is not present, the
behavior defaults to 'none', but if any value that is not 'none' is used,
it behaves like 'clip'.