This is an element created by Netscape that 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 LAYER tags can be treated as a single
item of content that can be moved and altered in various ways.
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.)
Layers can be nested and moved in a dynamic fashion via scripting.
This type of layer defining explicit positioning is also known as
an 'out-of-flow' or 'positioned' layer. An alternate method of defining
a layer is through the use of the ILAYER
element, which allows the definition of layers whose position follows the
flow of the page [like an image] - this is known as an 'inflow layer'.
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 layer'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 tag 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: This is a nestable block element,
most clearly like the DIV element. Until I experiment with this element some or some
official behavioral interaction documentation appears, it will be treated in
the same method as the DIV element is.
DTD Note: Since the DTD behavior is preliminary,
I have held off including the element in the BLOCK tag groupings. Consider the %Block
Format Parent% and %Block Format Content% groups to contain the LAYER element if
a full behavioral model is desired.
Note: It appears that content pointed to by the SRC attribute should be
a complete HTML document.
Only Netscape currently supports this element in its 4.x versions. Netscape has
stated that its 5.0 version and above would not support the syntax. So, its use
is not recommended; the same capabilities are available with wider browser
support via the Style
Sheet Positioning[-->Index DOT Css] properties.
Browser Peculiarities
Using Javascript scripting to control LAYER behavior was not supported in
Netscape 4.0 Beta 1, but later versions support this.
[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.
[Test]
Netscape 4.x can not correctly hyperlink to a bookmark (A NAME) that is
nested inside a LAYER element from another document. It succeeds in
jumping to the document, and it does attempt to jump within the
document, but I didn't see a particular pattern to where it was jumping
to...but it isn't the correct location. Hyperlinking to a bookmark
nested in a LAYER 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'.