About Frames in HTML...
= Index DOT Html by Brian Wilson =

Justification | Usage
Frames: To Use or Not?
Related Sites
Main Index | Element Tree | Element Index | HTML Support History
Justification for Frames
The "Frame" feature set in HTML was created by Netscape for version 2.0 of its Navigator product. It allows the browser window to be sub-divided into smaller viewable areas for use in keeping certain content constant while other content is scrolled or replaced. Each of these areas (also known as "frames") represent a completely separate sub-document which can be individually controlled and addressed. Frames also allow an author to specify the placement and usage behaviors of these embedded HTML sub-documents. It is a very nice concept, but as specified only works essentially as a visual paradigm - eg: how would a Braille browser present frames? In addition, the visual results of a document layout specified with frames is often VERY resolution dependent. An alternate navigation sometimes offered for frames is a simple navigable list of sub-frame documents.

Note: At least one of the fundamental problems with the original design of framed documents has been addressed by HTML 4.0. It broadens the scope of the NOFRAMES element so that it can be used in sub-documents as well as in the frame layout document. This allows for better backward compatibility and reduces the need for multiple versions of the same document. Repeatable sections which would normally be in separate frames can now exist in NOFRAMES elements in subdocuments as well - older browsers will see the noframes content and frames-capable browsers will ignore it.

Frames Usage
[ <frameset>, <frame>, <noframes> ]
This element controls the layout of sub-documents on the browser display. It allows the display to be divided up into a specified number of rows or columns with specific or dynamic sizes. Each frameset structure can be further divided into more rows and columns by nesting other FRAMESET structures within its contents.
This is the element that actually defines what the content of the frame will be. This element indicates a URL of a document to place within the space provided for it by the FRAMESET layout definition. Other properties of displaying the frame, such as resizing and scrolling capability, are also controlled through this element.
The FRAMESET element takes the place that is normally occupied by the BODY element. This eliminates the traditional structure of an HTML document, so the NOFRAMES element comes to the rescue in these situations. This element allows for backward compatibility with older browsers by allowing a traditional BODY structure to be placed within a NOFRAMES element. Browsers that DO support frames will ignore the NOFRAMES element, and older browsers will only see the traditional HTML document structure in place. All browsers should be happy.

Frames: To Use or Not?
There are many readers out there who do NOT like to read pages that use frames. Indeed, there are some compelling arguments against their use. Such arguments mostly involve issues with the speed and implementation of the frames concept. There are situations when their use is also very helpful, and the arguments in favor of frames in these cases is for better intuitive navigation. In the end, it is the author that must decide whether to create a document using frames or not, and whether the advantages outweigh the disadvantages.

Advantages to Using Frames

Disadvantages to Using Frames

Related Sites
Official References
The HTML 4.0 Recommendation
[Includes all 2.0, and 3.2 elements plus frames syntax for the first time]
Netscape's official documentation for frames
Internet Explorer Tag reference
[Details frame usage and IFRAME syntax]

Charlton D. Rose's Netscape Frames Tutorial
WebSpinner's Frames Tutorial
Matthew Miller's Frames FAQ
Dave Solko's 'All about frames'
'Guide to frames usage' - an analysis of many of the problems with the frames concept
Frame Shop - Create a framed document structure by filling out a form.

Other Related Links
W3C's draft for "Frame-based layout via Style Sheets" - a historically interesting proposal that never came to pass.

Boring Copyright Stuff...