Domain Registration : Discount Domain Pricing : Website and Domain Hosting : Frontpage 2000 Hosting : Website Development and Promotion : Secure E-Commerce : Shopping Cart Software : Linux and Windows NT : Graphic Design : Free Email Services : Fast Servers : Low Cost!


This tutorial looks at some the Tags available, and discusses the behavior of each.

<frameset cols="x,x">   <frameset rows="x,x">

Each occurrence of the <frameset> tag must specify either columns (cols) or rows to be displayed. A <frameset> tag cannot contain BOTH cols AND Rows - this effect is achieved by nesting frameset tags.

Columns or Rows can be specified in either pixel or percentage value: <frameset cols="300,*"> or <frameset rows="25%,50%,25%">, and can contain as many columns or rows as you wish. Each comma separated value ("X,") represents a <frame src=""> which must be displayed. Therefore <frameset rows="25%,*,100"> would represent a window framed into 3 areas, 20% on top, 100 pixels high on the bottom. Since we cannot know the height of the browser, we cannot determine the value of the middle frame - the command  " *," tells the browser to expand this frame  to use the rest of the window.

    <frameset> options:

    frameborder="yes/no" border=0 framespacing=0

    These 3 frameborder controls should be used only to turn borders OFF. If you want to leave the borders ON, don't use anything. Browser manufacturers have dabbled with such controls as framespacing and bordercolor, but these should never be used unless your site is on a closed intranet. They are not well supported and your results can vary widely

<frame src="file.url" name="name">

The <frame> tag is required for each "X," row or column specified in the <frameset> tag. Each <frame> will require an initial page src="" to display, and a unique name="FrameName" to target with hyperlinks from other framed pages.

    <frame> options:


    Add this to your <frame> tag to control the scrollbars for that frame. The default scrolling behavior for any unspecified frame is auto, which is to say: "Only display scrollbars IF the content runs outside the display area."

    marginheight="15" marginwidth="15"

    You can control the margins for each frame with these options. The default value in most browsers is roughly 15 pixels


    IF you have frame borders visible, this option will "lock" them in place, and remove the users ability to resize the framed areas.


Believe it or not, this tag causes plenty of problems for those who forget it. it is required to close each instance of the <frameset> tag

<noframes> </noframes>

It is very important that your <frameset> documents contain <noframes> content. You can insert custom content strictly for Older Browsers, but it is important that you at LEAST include a link to your main menu page.

Now that we've learned the tags, lets create a more complex example:

  index.html (_top)  
  menu.html (Menu)
  • Link
  • Link
  • Link
  • Link
  main.html (Main)

Stuff, stuff, stuff

stuff, stuff, stuff
nested.htm (Nest)
  sub-a.htm (subA)   sub-b.htm (subB)  

In this example, we have four src="" documents, and 4 Named Frames to Target. We have nested our frameset twice,  to combine rows and columns - once with tag nesting, and once with document nesting.

    <frameset cols="33%,*">

        <frame src="menu.htm">

        <frameset rows="60%*,*>

                <frame src="main.htm" name="main">

                <frame src="nested.htm" name="nest">




    Now lets examine each tag individually:

    <frameset cols="30%,*">

    This tag defines 2 columns, one for the menu at 30%, and another for "*", or, the remaining 70% of the screen area.

    <frame src="menu.htm" name="Menu">

    For the First Column, display the contents of menu.html, and give this frame the name "Menu"

    <frameset rows="60%,*">

    Here we are defining a NEW frameset with 2 rows, which will display in the second column created by the frameset above.

    <frame src="main.htm" name="Main">

    For the top row of the second column, we insert our main page.

    <frame src="nested.htm" name="nested">

    For the bottom row of the second column, we will include a new<frameset> document. As we will see, this will create yet 2 more columns, to display in the bottom row.


    Be sure to close each <frameset>

    Nested.htm (Nest or _parent)

    The source of nested.htm is simple enough:

    <frameset cols="50%,50%" frameborder=no border=0 framespacing=0>

    <frame src="sub-a.htm" name="subA">

    <frame src="sub-b.htm" name="subB">


    Our final discussion involves dynamically changing the contents of more than one frame. As you have seen in the above example, two or more frames can be changed simply by targeting the _parent of a nested frameset document. This will not always suffice however, and you may find it easier to use the javascript method illustrated below:

    <BODY onLoad="parent.frameName.location='http://domain.com/page.htm' ">

    Including this simple command in any document of your frameset, will cause the specified frame NAME to be updated with the specified URL. Simply put, you will change the First frame in your sequence with the normal href="" target="frameName" method, and that new document will cause the next frame in your sequence to load the appropriate page.

Copyright © 1995-2003 Sidetrips™ Internet Services, Inc. All rights reserved.

Reproduction in whole or in part in any form or medium without express
written permission of Sidetrips Internet Services, Inc. is prohibited.

sidetrips.com™, hostserver.com™, registera.com™, htmlshop.com™,
and associated domains are trademarks of Sidetrips™ Internet Service, Inc.

Privacy Policy | Acceptable Use Policy | Terms of Service