This is the main container for a Frame. The FRAMESET element has a matching end element, and within the FRAMESET you can only have other nested FRAMESET, FRAME, or the NOFRAMES elements.

This takes a list of values, separated by comma marks. They can represent either absolute pixel, percentage, or relative scaling values. The total set by the values given in the ROWS attribute should not exceed 100% (as the total rows are extended across the whole available browser display window).

If any of the values are single numerical values then these are considered to be absolute pixel values. It is not recommended to fix a frame set by using a complete set of pixel values, because browsers use a variety of different screen resolutions when viewing documents, so the layout may become distorted. Percentage values can be given for this attribute. If the total percentage values given exceed 100% then all values will be scaled down by the browser so that the total is 100%. The remaining value option is to use a * character. This tells the browser that the frame is a relative size frame and should be displayed accordingly. Numerical values can be used with the * character, to scale the relative frame sections within the browser window.

To specify a three vertical framed layout, where the first section uses 20% of the display window, the second uses 100 pixels and the third section uses the remaining screen, use:

<FRAMESET ROWS="20%, 100, *">

To split the layout into two vertical frames, the first using a quarter of the display window, the second using three-quarters of the window, use:

<FRAMESET ROWS="25%, 75%">

NOTE : This would be exactly the same as using <FRAMESET ROWS="*, 3*">

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 element can be nested. In this way, frame sections can be set up where the display window can be split into either horizontal or vertical sections, with any of these being further sub-divided by nested FRAMESET elements.

BORDER="pixel value"
Netscape allows the global setting of frame border thicknesses by using this attribute within the <FRAMESET> element. It accepts a pixel value, which determines the thickness of any borders used within the frame set.

BORDERCOLOR="#rrggbb or colour name"
This Netscape specific attribute sets the colours for the border of the specified frameset. It can also be used in the <FRAME> element (see below) for setting the border colours of a specific frame. It accepts any #rrggbb hex triplet as a value. Any BORDERCOLOR setting in a <FRAMESET> element is over-ridden by a setting present in the <FRAME> element.

Netscape claims support for this attribute (in a similar fashion to that supported by Internet Explorer in the <FRAME> element) to set the borders globally for an entire <FRAMESET>, using values of either "yes" or "no". However, on testing, didn't appear to. Internet Explorer does support the use of this attribute in the <FRAMESET> element, using the value "0" to produce borderless frames. To produce this effect, it also requires using the FRAMESPACING="0" attribute. (The FRAMESPACING attribute sets the amount of 'grey' space between each frame of the frame set.) See the <FRAME> topic for an example of browser-independent borderless frames.

TITLE="informational ToolTip"
The Internet Explorer 4.0 (and above) specific TITLE attribute is used for informational purposes. The <FRAMESET> element is not rendered on screen and so doesn't produce a ToolTip with the contents of the TITLE attribute.

LANG="language setting"
The LANG attribute can be used to specify what language the <FRAMESET> element is using. It accepts any valid ISO standard language abbreviation (for example "en" for English, "de" for German etc.) For more details, see the Document Localisation section for more details.

LANGUAGE="Scripting language"
The LANGUAGE attribute can be used to expressly specify which scripting language Internet Explorer 4.0 uses to interpret any scripting information used in the <FRAMESET> element. It can accept values of vbscript, vbs, javascript or jscript. The first two specify the scripting language as Visual Basic Script, the latter two specify it as using Javascript (the default scripting language used if no LANGUAGE attribute is set.

CLASS="Style Sheet class name"
The CLASS attribute is used to specify the <FRAMESET> element as using a particular style sheet class. See the Style Sheets topic for details.

ID="Unique element identifier"
The ID attribute can be used to either reference a unique style sheet identifier, or to provide a unique name for the <FRAMESET> element for scripting purposes. Any <FRAMESET> element with an ID attribute can be directly manipulated in script by referencing its ID attribute, rather than working through the All collection to determine the element. See the Scripting introduction topic for more information.

Every <FRAMESET> element in a document is an object that can be manipulated through scripting. Scripting of the <FRAMESET> element is supported by both Internet Explorer and Netscape, although Netscape only supports the events - none of the properties, or methods for the <FRAMESET> element are available to Netscape.

<FRAMESET...> Properties
Of the standard Dynamic HTML properties, the <FRAMESET...> element/object supports the following: className, document, id, isTextEdit, lang, language, parentElement, parentTextEdit, sourceIndex, tagName and title. Details of these can be found in the standard Dynamic HTML properties topics.
Also, the <FRAMESET> element supports the following properties, which all reflect the values in the attributes described above: border, borderColor, cols, frameBorder, frameSpacing and rows.

<FRAMESET...> Methods
Of the standard Dynamic HTML methods, the <FRAMESET...> element/object supports the following: contains, getAttribute, removeAttribute, scrollIntoView and setAttribute. Details of these can be found in the standard Dynamic HTML Methods topics.

<FRAMESET...> Events
The <FRAMESET...> element/object supports the following events:

As a <FRAMESET> element essentially describes different windows, using the onblur event (fired when the user removes the focus from the <FRAMESET> and therefore the window) is equivalent to using the onblur event of the Window Object.

Again, using the onfocus event for a <FRAMESET> element (fired when the user focuses on the <FRAMESET> window definition) is the same as using the onfocus event of the Window Object.

The onload event is fired when the <FRAMESET> window definition loads. Using the event in the <FRAMESET> element is the same as using it from the Window Object.

The onload event is fired when the <FRAMESET> window definition is un-loaded (by the user shutting the browser down, or by navigating to another page. Using the event in the <FRAMESET> element is the same as using it from the Window Object.