Frames are an extension to HTML to allow several different documents to be displayed in separate autonomous subwindows inside the Web browser window. Without frames, the browser displays one Web page filling the whole window, and if the page is too large to fit in the window scroll bars are displayed to allow the user to view the content. When you link to another page the whole window is updated with the contents of that page.
With a frame-based page the Web browser window is divided up into separate areas, called frames, and these behave like independent windows. If the content is too big to fit in one of the frames, scroll bars can be displayed to allow the visitor to scroll that frame independently of the rest of the Web browser window. Clicking on a link in one frame can cause the content to be updated in that frame, or to replace the content in any of the other frames.
The way that frame-based pages work is actually conceptually quite simple.
When the visitor connects to a frame-based page they load a frameset definition that tells the browser how to divide up the window into separate frames. It also tells the browser what content to load into each frame, and gives information about the property of each frame, such as whether it can scroll and whether the user can change its size.
From then onwards, the browser behaves as if each frame is a separate independent browser window. In addition, there are some minor extensions to standard HTML to allow the content in one frame to affect the content in a different frame.
The most common use of frames is to provide static navigation bars which remain visible even when the main text of the page is scrolled or changed.
For example, a frame-based page allows the designer to place buttons along the top of the page, links in a bar to the left of the page, or both of these features at the same time, with the main area being scrollable by the user:
