In the context of a web browser, a frame is a part of a web page or browser window which displays content independent of its container, with the ability to load content independently. The HTML or media elements that go in a frame may or may not come from the same web site as the other elements of content on display.
In HTML, a frameset is a group of named frames to which web pages and media can be directed; an iframe provides for a frame to be placed inside the body of a document.
Since the early 2000s, the use of framesets has increasingly been considered obsolete due to usability and accessibility concerns, and the feature has been removed from the HTML5 standard.
The HTML 4.0 standard included two different forms of frame, frame
element, used inside a special frameset
container, and the iframe
element, used within the body of a document.
In HTML 4.01, a document, which would normally contain a head
and a body
, may instead contain a head
and a frameset
(but not both a body
and a frameset
). The attributes rows
and cols
on the opening frameset
tag define the dimensions of a grid of frames using comma-separated lists of sizes, specified in either pixels or percentages. Any row or column size may be replaced with an asterisk to indicate the remainder of the remaining screen space. Within the frameset
, a series of frame
elements describe the initial source documents for each frame in the frameset, as well as assigning them names for use as the target of links. The <noframes>
element may be included so web browsers with frames disabled (or browsers that do not support frames) can display something to the user, as in this example:
The iframe
element is used inline within a normal HTML body, and defines the initial content and name similarly to the frame
element.
Netscape Navigator 2.0 introduced the elements used for frames in March 1996. Other browser vendors such as Apple with Cyberdog followed later that year. At that time, Netscape proposed frames to the World Wide Web Consortium (W3C) for inclusion in the HTML 3.0 standard.
Frames were used to display and navigate early web apps, such as web chat sites and online magazines. Frames had the advantage of allowing elements to be displayed sitewide without requiring server features such as server-side includes or CGI support. These features were not common on early web servers accessible to the public.