Layers are another alternative to frames or tables for controlling a web page’s layout. Unlike other HTML elements, layers provide both compositing (i.e., two elements can occupy the same area) and absolute positioning (i.e., you can specify the coordinates of a layer relative to the upper-left corner of the browser window or relative to another layer). Layers are empty containers into which you can insert other elements, such as text and graphics.
Tip
Unlike other HTML elements, the visual position of a layer on the page is unrelated to the location of the layer tag within your HTML code. Instead, layer positioning is controlled by the coordinate attributes specified within the tag itself.
Layers require CSS and therefore require at least IE4. Whereas NN4 supports layers, it doesn’t support advanced features such as nested layers. See the discussion under Section P.4.3 in the preface for more information. Layers can also be used for special effects and animation as described in Chapter 14 and Chapter 17. Consider using Macromedia Flash or Shockwave for more demanding animations or interactivity.
Although layers were originally designed for page layout, tables still offer more reliable alignment in most browsers. If you like, you can design your page using the layer tools and then choose Modify → Convert → Layers to Table to transform your layers to tables (however, you can’t convert layers to tables if any of the layers overlap). You can also convert layers to a table using the File → Convert → 3.0 Browser Compatible → Layers to Table command. Converting tables to layers may create unnecessarily verbose HTML. Create tables using Dreamweaver’s table tools for greater efficiency.
Conversely, you can convert
tables to layers by using
Modify → Convert → Tables to
Layers. You can also export layers from Fireworks using its
File
→ Export command and setting the Save As Type option to CSS
Layers (.htm
).
Dreamweaver
creates layers using
<div>
tags by default. This default can be changed in the
Layer Preferences dialog box, which is
accessed using Edit → Preferences → Layers and
is shown in Figure 4-5. The
<layer>
and
<ilayer>
tags are supported in NN4 only (and aren’t supported in NN6),
so the LAYER and ILAYER options should not be used. The
<span>
tag is not supported in Netscape, so
use the DIV option for maximum compatibility.
The Layer preferences are explained in Table 4-4.
Table 4-4. Layer preferences
Preference |
HTML |
Description |
---|---|---|
Tag |
|
Creates layers using the specified tag. You should use DIV. |
|
Controls visibility of the layer when the document loads. | |
|
The layer width in pixels. | |
|
The layer height in pixels. | |
|
The layer’s background color. Both properties are used to support the major browsers. | |
|
The layer’s background image. Both properties are used to support the major browsers. | |
Nesting |
N/A |
Allows nested layers. It is not supported by Netscape Navigator. |
Netscape 4 Compatibility |
See the discussion following this table. |
Refreshes layers in Netscape Navigator when the browser window is resized. |
Tip
If you use layers with Netscape Navigator, turn on the “Netscape 4 Compatibility: Add Resize Fix When Inserting Layer” option under Edit → Preferences → Layers.
If you enable the Netscape 4 Compatibility checkbox, Dreamweaver inserts special JavaScript code into any document that uses layers. The JavaScript ensures that layers are properly resized by reloading the page when NN4 users resize the browser window. To add or remove this JavaScript code manually, choose Commands → Add Remove Netscape Resize Fix.
To draw a layer, use Insert → Layer or the Draw Layer tool from the Objects panel’s Common category, as shown in Figure 4-6 .
Insert → Layer draws a layer (of the default size specified in the preferences) at the current cursor location. Insert → Layer doesn’t set an absolute position for the layer’s top-left corner, but the Draw Layer tool does.
Insert → Layer and the Draw Layer tool can be used in Standard view only; they are not available in Layout view. Hold down the Ctrl key (on Windows) or the Cmd key (on Macintosh) to retain the Draw Layer tool when drawing multiple layers.
You can also use Modify → Convert → Tables to Layers to create layers from an existing table. Layers can also be placed within a table. Be careful, however—layers nested within tables won’t display properly in some browsers.
As usual, Dreamweaver automatically creates the necessary HTML for
your layers, and you can adjust layer properties via the Property
inspector. The HTML tag for a layer is represented
by a shield icon containing a C (whose visibility depends on the View
→ Visual Aids → Invisible Elements setting). The icon is
usually gold (see Figure 2-23), but turns blue when
the layer is selected. The C on the shield icon stands for CSS,
because layers implemented with the <div>
or
<span>
tags conform to the CSS standard. If
the layer is implemented using the <layer>
or <ilayer>
tags, which are supported by
Netscape only, Dreamweaver displays an N on the shield icon instead
of a C.
You can select a layer in several ways:
Shift-click the layer. This technique can also be used to deselect a layer or select multiple layers.
Click the shield icon representing the layer. Note that the shield icon isn’t always located near the layer on the page. Moving the shield icon simply rearranges the underlying HTML code (and can be used to un-nest a nested layer), but it doesn’t reposition the layer on the page.
Click within the layer and then click on the tab that appears in its upper-left corner.
Click the layer’s border (see View → Visual Aids → Layer Borders).
Click the layer’s name in the Layers panel (discussed later in this chapter).
Layers are affected by a variety of properties available through the Property inspector, as shown in Figure 4-7.
Table 4-5 explains the layer properties that can be set in the Property inspector. If you rename a layer after applying a behavior, you’ll have to edit the behavior to use the new layer name.
Table 4-5. Layer properties
Property |
HTML |
Description |
---|---|---|
LayerID |
|
The layer name (used by scripts) should start with a letter and should not contain spaces. |
|
The position of a layer’s left edge relative to the browser window, frame, or parent layer. | |
Top (T) |
|
The position of a layer’s top edge relative to the browser window or frame. |
|
A layer’s width in pixels. | |
|
A layer’s height in pixels. | |
|
Specifies the layer’s stacking order. Higher-numbered layers are drawn in the foreground. (Page’s z-index is 0.) | |
|
Controls layer visibility when the document loads (it can be modified via JavaScript). | |
|
Sets a layer’s background image. Both properties are used to support major browsers. | |
|
Sets a layer’s background color. Both properties are used to support major browsers. | |
Tag |
|
Determines the tag used to create layers. Use DIV. |
Overflow |
|
Controls the display when content exceeds layer dimensions. |
Clip (L T R B) |
|
Controls the clipping of images with the layer. Values are in pixels measured from the top-left corner of the layer. |
The default Overflow option is Visible, which causes the layer to expand, if necessary, to display the elements within it. The Hidden setting crops elements that are too large to fit within a layer’s dimensions. The Scroll and Auto options add scroll bars (either fixed or only when necessary) but neither works in NN4 or Opera, so avoid them.
You can specify four values for the Clip property in the L, R, T, and B
fields. If you specify just the R and B values, Dreamweaver assumes
that L and T should be zero. If you don’t set at least the R
and B values, Dreamweaver won’t create the
clip
attribute within your HTML.
Although not accessible in the Property inspector, layers also
support a position
attribute that can be set to
static
, relative
,
absolute
, fixed
, or
inherit
; however, Dreamweaver always sets a
layer’s position
attribute to
absolute
. To change this attribute, hand-edit the
HTML code. (Subsequent changes made to the layer cause it to revert
to absolute
positioning). The five types of
positioning are as follows.
- Static
Static positioning treats a layer as a rectangular box that is rendered in the document flow as with any normal element. It allows layers to move on the page depending on the content that precedes them. This mode also causes layers to affect the position of other elements that follow them on the page
- Relative
Relative positioning is the same as static positioning except that the layer’s position is offset by the values of the
top
,right
,bottom
, andleft
attributes.- Absolute
Absolute positioning places a layer at coordinates defined by the
height
,width
,top
,right
,bottom
, andleft
attributes. This is the only mode supported by Dreamweaver. The contents of absolutely positioned elements neither affect nor are affected by the position of other content on the page. Therefore, they may obscure other content displayed on the same page. Coordinates are typically relative to the upper-left corner of the document. Internet Explorer will position nested layers relative to the upper-left corner of the parent layer; Netscape positions nested layers relative to the upper-left corner of the document (it ignores nesting).- Fixed
Fixed positioning uses window-relative coordinates. Whereas absolutely positioned layers will move if the document is scrolled, fixed layers will not, making them suitable for headers and footers. Netscape Navigator 6 is the only browser to support fixed positioning; Internet Explorer and earlier versions of Netscape do not support this mode.
- Inherit
Nested layers whose
position
attribute is set toinherit
will inherit the positioning attribute of their parent.
The Layers panel shown in Figure 4-8 helps manage layers. Open the Layers panel by using Windows → Layers or F2. You can also open the Layers panel by right-clicking (Windows) or Ctrl-clicking (Macintosh) on a layer and selecting Layers Panel from the pop-up contextual menu.
The Layers panel’s options are explained in Table 4-6.
Table 4-6. Layers panel options
Control |
Description |
---|---|
Toggles the visibility of the layer on your screen, not the default setting of the property in your document. Nested layers are hidden when the parent layer is hidden. | |
Specifies the name of the layer. You can select a layer by clicking its name. | |
Identifies the vertical stacking order of the layer. 0 is level of the document and a higher-numbered layer appears stacked above that. (The first layer in the Layers panel is in the foreground and the last one is in the background.) See Modify → Arrange → Send to Back and Modify → Arrange → Bring to Front. | |
Prevent Overlaps |
Forces all layers to lie next to one another, preventing the creation of overlapping layers (equivalent to Modify → Arrange → Prevent Layer Overlaps). This option does not affect existing layers’ unless you try to move or resize one. Nor does it prevent layers from overlapping when setting their positions via the Property inspector. |
Layers can be nested inside one another, which allows a set of layers to move in unison and inherit values when the parent layer is modified by a script. Nesting layers groups them conceptually, but nested layers need not be graphically positioned within their parent layer (as in the case of nested tables and frames). Therefore, nested layers may or may not overlap on screen; only their HTML code is physically nested. Similarly, layers need not be nested to occupy the same physical space on a page.
Tip
Netscape Navigator 4 does not handle nested layers properly and often ignores positioning and visibility settings. Avoid nested layers when supporting NN4.
You can create nested layers by:
Dragging the Draw Layer tool within a parent layer and then releasing it.
Clicking inside a parent layer and selecting Insert → Layer.
Ctrl-dragging (Windows) or Cmd-dragging (Macintosh) the name of one layer onto another layer in the Layers panel. The dropped layer becomes a child of the layer you dropped it on.
If the Edit → Preferences → Layers → Nest when Created Within a Layer option is set, Dreamweaver automatically nests layers when a layer is drawn inside another layer.
After creating a nested layer, you can drag the outline of the layer to reposition it on the page; it remains nested even when its position changes.
To un-nest a layer:
Reposition its shield icon (which moves the HTML tags, not the layer itself); or
In the Layers panel, Ctrl-drag (Windows) or Cmd-drag (Macintosh) the layer’s name to the area below any of the listed layers.
Hand-edit the HTML code.
The following layer-related operations can be accomplished by hand-editing the HTML, but these gestures manipulate layers more easily.
To delete a layer, select it and then press the Delete key.
To resize or reposition a layer, select it and then:
Use the resize handles to resize or move it.
Use the arrow keys to move a layer one pixel (holding down the Shift key moves it by ten pixels).
Use Ctrl-arrow (Windows) or Cmd-arrow (Macintosh) to resize a layer by one pixel (holding down the Shift key resizes it by ten pixels).
Specify Left, Top, Height, or Width in the Property inspector using supported units, such as % (percent), px (pixels), pc (picas), pt (points), in (inches), mm (millimeters), cm (centimeters), em (font height), ex (height of x in current font). Specify units without an intervening space, as in
50pt
to indicate 50 points.Note that negative coordinates cause the layer to be positioned outside the browser’s visible area (use the keyboard or Property inspector to position layers offscreen).
You can also align and resize layers using the Modify → Align options as shown in Table 4-7. To use these alignment options, select multiple layers using Shift-click. The selected layers are aligned or resized to match the last selected layer.
Table 4-7. Modify → Align Menu Options
Align |
Windows |
Macintosh |
---|---|---|
Left |
Ctrl+Shift+1 |
Cmd+Shift+1 |
Right |
Ctrl+Shift+3 |
Cmd+Shift+3 |
Top |
Cltr+Shift+4 |
Cmd+Shift+4 |
Bottom |
Cltr+Shift+6 |
Cmd+Shift+6 |
Make Same Width |
Cltr+Shift+7 |
Cmd+Shift+7 |
Make Same Height |
Cltr+Shift+9 |
Cmd+Shift+9 |
In this chapter, you have seen how to use frames and layers to control the layout of elements on your web page. See Chapter 14 and Chapter 17 for more information on manipulating layers. The next chapter covers how Dreamweaver handles external source files such as Flash and Shockwave assets.
Get Dreamweaver in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.