Frames allow a web designer to provide a complex page structure in a web page. Having frames in a web page makes the web page easy to navigate and good looking.
Frames can be used to partition a web page into number of rectangular areas, each of which can have content of its own. Thus the frame is a structure provided in HTML for displaying content of multiple html files in a single web pages.
Frames are part of a special type of web page and are created using a special tag called frameset. The page containing a frameset has more than one frame each of which has a reference to a HTML file, the content of which will be displayed in the frame.
All of the pages within a frameset are displayed inside the same browser window and can actually be made to appear to be a single page. Because frame-based sites display more than one page at the same time, they need extra care to set up.
Frame-based and Non-frame Web Pages
Non-frame sites tend to place an index on every page and hence as new pages are added, or removed, all existing pages need editing for reflecting the change in the index. Whereas frame-based sites have their index in one frame with page content displayed in another. If new pages are added to the site, their links need to be added in only one page having the index.
A frame-based page is actually made from a set of documents, each displayed in its own frame. Each sub documents can have its own scrollbars and can be loaded, reloaded and printed as if it were occupying the whole screen. The following is the structure of <frameset> tag available for creating frames in HTML:
<frameset [cols="%,%"] [rows="%,%"]> ... </frameset>
The frameset tag determines how the screen will be partitioned into two or more frames that will occupy the client area of a single web page. It is used to specify the arrangement of frames in rows and columns.
We can have as many frames either vertically or horizontally as we want. Each frame has to be allocated a percentage of space on the screen. Moreover, framesets can be nested so that individual rows and columns can themselves be broken up into sub frames.
Here is the link for learning more on frames.