FRAMES -
SYNTAX
Frames are generated by three things:
FRAMESET tags,
FRAME tags, and
Frame Documents.
FRAME
DOCUMENT
A Frame Document has a basic structure very much like your normal HTML
document, except the
BODY container is replaced by a
FRAMESET container which describes the sub-HTML documents, or Frames,
that will make up the page.
<HTML>
<HEAD>
</HEAD>
<FRAMESET>
</FRAMESET>
</HTML>
FRAME
SYNTAX
Frame syntax is similar in scope and complexity to that used by tables,
and has been designed to be quickly processed by Internet client layout
engines.
<FRAMESET>
- This is the main container for a Frame. It has 2 attributes
ROWS and
COLS. A frame document has no BODY, and no tags that would normally
be placed in the BODY can appear before the FRAMESET tag, or the FRAMESET
will be ignored. The FRAMESET tag has a matching end tag, and within the
FRAMESET you can only have other nested FRAMESET tags, FRAME tags, or the
NOFRAMES tag.
-
ROWS="row_height_value_list"
- The ROWS attribute takes as its value a comma separated list of values.
These values can be absolute pixel values, percentage values between 1 and
100, or relative scaling values. The number of rows is implicit in the
number of elements in the list. Since the total height of all the rows must
equal the height of the window, row heights might be normalized to achieve
this. A missing ROWS attribute is interpreted as a single row arbitrarily
sized to fit.
-
-
Syntax of value list.
-
value
- A simple numeric value is assumed to be a fixed size in pixels. This is
the most dangerous type of value to use since the size of the viewer's
window can and does vary substantially. If fixed pixel values are used, it
will almost certainly be necessary to mix them with one or more of the
relative size values described below. Otherwise the client engine will
likely override your specified pixel value to ensure that the total
proportions of the frame are 100% of the width and height of the user's
window.
-
value%
- This is a simple percentage value between 1 and 100. If the total is
greater than 100 all percentages are scaled down. If the total is less than
100, and relative-sized frames exist, extra space will be given to
them. If there are no relative-sized frames, all percentages will be scaled
up to match a total of 100%.
-
value*
- The value on this field is optional. A single '*' character is a
"relative-sized" frame and is interpreted as a request to give the
frame all remaining space. If there exist multiple relative-sized frames,
the remaining space is divided evenly among them. If there is a value in
front of the '*', that frame gets that much more relative space. "2*,*"
would give 2/3 of the space to the first frame, and 1/3 to the second.
-
- Example for 3 rows, the first and the last being smaller than the center
row:
<FRAMESET ROWS="20%,60%,20%">
Example for 3 rows, the first and the last being fixed height, with the
remaining space assigned to the middle row:
<FRAMESET ROWS="100,*,100">
-
COLS="column_width_list"
- The COLS attribute takes as its value a comma separated list of values
that is of the exact same syntax as the list described above for the
ROWS attribute.
-
The FRAMESET tag can be nested inside other FRAMESET tags. In this case
the complete subframe is placed in the space that would be used for the
corresponding frame if this had been a FRAME tag instead of a nested
FRAMESET.
-
-
<FRAME>
- This tag defines a single frame in a frameset. It has 6 possible
attributes:
SRC,
NAME,
MARGINWIDTH,
MARGINHEIGHT,
SCROLLING, and
NORESIZE. The FRAME tag is not a container so it has no matching end
tag.
-
-
SRC="url"
- The SRC attribute takes as its value the URL of the document to be
displayed in this particular frame. FRAMEs without SRC attributes are
displayed as a blank space the size the frame would have been.
-
NAME="window_name"
- The NAME attribute is used to assign a name to a frame so it can be
targeted by links in other documents (These are usually from other frames in
the same document.) The NAME attribute is optional; by default all windows
are unnamed.
-
- Names must begin with an alphanumeric character.
- Named frames can have their window contents targeted with the new
TARGET attribute.
-
MARGINWIDTH="value"
- The MARGINWIDTH attribute is used when the document author wants some
control of the margins for this frame. If specified, the
value for MARGINWIDTH is in pixels. Margins can not be less than
one-so that frame objects will not touch frame edges-and can not be
specified so that there is no space for the document contents. The
MARGINWIDTH attribute is optional; by default, all frames default to letting
the browser decide on an appropriate margin width.
-
MARGINHEIGHT="value"
- The MARGINHEIGHT attribute is just like MARGINWIDTH above, except it
controls the upper an lower margins instead of the left and right margins.
-
SCROLLING="yes|no|auto"
- The SCROLLING attribute is used to describe if the frame should have a
scrollbar or not.
Yes results in scrollbars always being visible on that frame.
No results in scrollbars never being visible.
Auto instructs the browser to decide whether scrollbars are needed,
and place them where necessary. The SCROLLING attribute is optional; the
default value is
auto.
-
NORESIZE
- The NORESIZE attribute has no value. It is a flag that indicates that
the frame is not resizable by the user. Users typically resize frames by
draggin a frame edge to a new position. Note that if any frame adjacent to
an edge is not resizable, that entire edge will be restricted from moving.
This will effect the resizability of other frames.The NORESIZE attribute is
optional; by default all frames are resizable.
-
-
<NOFRAMES>
- This tag is for content providers who want to create alternative content
that is viewable by non-Frame-capable clients. A Frame-capable Internet
client ignores all tags and data between start and end NOFRAMES tags.
EXAMPLES
This example compares Frame syntax and TABLE syntax, and will show the
HTML source used to display the layout below.
+----------------------------------------------------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |-----------------------------+
| | |
| | |
| | |
| | |
+----------------------------| |
| | |
| | |
| | |
| | |
| |-----------------------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
+----------------------------------------------------------+
THE
ABOVE
LAYOUT
USING
TABLES
<TABLE WIDTH="100%" HEIGHT="100%" BORDER>
<TR><TD
ROWSPAN=2>CELL1</TD><TD>CELL2</TD></TR>
<TR><TD ROWSPAN=2>CELL3</TD></TR>
<TR><TD ROWSPAN=2>CELL4</TD></TR>
<TR><TD>CELL5</TD></TR>
</TABLE>
View the table.
THE
ABOVE
LAYOUT
USING
FRAMES
<FRAMESET COLS="50%,50%">
<FRAMESET ROWS="50%,50%">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
</FRAMESET>
<FRAMESET ROWS="33%,33%,33%">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
</FRAMESET>
</FRAMESET>
View the frame.
THE
ABOVE
LAYOUT
USING
NOFRAMES
INFO
<FRAMESET COLS="50%,50%">
<NOFRAMES>
<h1 align=center><blink>Frame
ALERT!</blink></h1>
<p>
This document is designed to be viewed using <b>Netscape
2.0</b>'s
Frame features. If you are seeing this message, you are using
a frame <i>challenged</i> browser.
</p>
<p>
A <b>Frame-capable</b> browser can be gotten from
<a href=/>Netscape Communications</a>.
</p>
</NOFRAMES>
<FRAMESET ROWS="50%,50%">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
</FRAMESET>
<FRAMESET ROWS="33%,33%,33%">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
<FRAME SRC="cell.html">
</FRAMESET>
</FRAMESET>
View the frame.