FRAME
FRAME
HTML frames are used to divide your browser window into multiple sections where each section can load a
separate HTML document. A collection of frames in the browser window is known as a frameset. The window
is divided into frames in a similar way the tables are organized: into rows and columns.
To use frames on a page we use <frameset> tag instead of <body> tag. The <frameset> tag defines how to
divide the window into frames. The rows attribute of <frameset> tag defines horizontal frames and cols attribute
defines vertical frames. Each frame is indicated by <frame> tag and it defines which HTML document shall
open into the frame.
Example
<html>
<head>
<title>HTML Frames</title>
</head>
<frameset rows="10%,80%,10%">
<frame name="top" src="/html/top_frame.htm">
<frame name="main" src="/html/main_frame.htm">
<frame name="bottom" src="/html/bottom_frame.htm">
<noframes>
<body>
Your browser does not support frames.
</body>
</noframes>
</frameset>
</html>
So you must place a <body> element inside the <noframes> element because the <frameset> element is
supposed to replace the <body> element, but if a browser does not understand <frameset> element then it
should understand what is inside the <body> element which is contained in a <noframes> element.
You can put some nice message for your user having old browsers. For example Sorry!! your browser does not
support frames. as shown in the above example.
Let's see following example where a test.htm file has following code:
<!DOCTYPE html>
<html>
<head>
<title>HTML Target Frames</title>
</head>
<frameset cols="200, *">
<frame src="/html/menu.htm" name="menu_page" />
<frame src="/html/main.htm" name="main_page" />
<noframes>
<body>
Your browser does not support frames.
</body>
</noframes>
</frameset>
</html>
Here we have created two columns to fill with two frames. The first frame is 200 pixels wide and will contain
the navigation menubar implemented by menu.htm file. The second column fills in remaining space and will
contain the main part of the page and it is implemented by main.htm file. For all the three links available in
menubar, we have mentioned target frame as main_page, so whenever you click any of the links in menubar,
available link will open in main_page.
Following is the content of menu.htm file
<!DOCTYPE html>
<html>
<body bgcolor="#4a7d49">
<a href="https://www.google.com" target="main_page">Google</a>
<br /><br />
<a href="https://www.microsoft.com" target="main_page">Microsoft</a>
<br /><br />
<a href="https://news.bbc.co.uk" target="main_page">BBC News</a>
</body>
</html>
<!DOCTYPE html>
<html>
<body bgcolor="#b5dcb3">
<h3>This is main page and content from any link will be displayed here.</h3>
<p>So now click any link and see the result.</p>
</body>
</html>
Now you can try to click links available in the left panel and see the result. The target attribute can also take
one of the following values:
Option Description
_self Loads the page into the current frame.
_blank Loads a page into a new browser window.opening a new window.
Loads the page into the parent window, which in the case of a single frameset is the main browser
_parent
window.
_top Loads the page into the browser window, replacing any current frames.
targetframe Loads the page into a named targetframe.