HTML framesets may be contained within other framesets i.e. nested. If the typical frame layout of a header frame with logo, side frame with navigation and right frame with content is wanted then nesting is required.
Taking the example above, the easiest way to think about it is that the window will first be divided into two panes. A narrow top pane for the logo and a broad bottom pane that is further divided into two panes.
So to achieve this will require...
A <frameset> element that divides the window into two rows.
A <frame> element to load in the page containing the logo.
A <frameset element> that divides the lower pane into two columns.
A <frame> element to load in the page containing the navigation.
A <frame> element to load in the page containing the content.
A </frameset> tag to close the inner <frameset> element.
A </frameset> tag to close the outer <frameset> element.
The code above will produce a frameset like the one shown below.
An Alternative Implementation of a Nested Frameset
In the example above the inner frameset was created directly within the outer frameset but an alterative is where the inner frameset is created within another document then loaded into a frame within the outer frameset.
This second example will produce the same result as the first but with one difference. All frames are said to be children of whatever parent contains them.
In the first example the inner frameset is the child of the browser window. In the second example the inner frameset is the child of the parent frame that loaded it in.
The issue of child and parent makes a difference when the <target> attribute is used and is covered in Targeting Frames.