Color, Margin and Control
We'll start with color. (All the examples below will be a modification of the advanced frame layout discussed in more detail on a previous page.)
Background Color
Rendering the background color of each frame in your frame layout is a no-brainer. To do this, you have only to adjust the background color of the frame source document loaded into the frame. For more information, see Page Color and Background.
Here's our advanced frame layout using a background color for the header and site menu frames.
Here's the same except with no borders. As you can see, this is already a vast improvement on the default appearance of the advanced frame layout.
Frame Border Color
You can adjust the color of the borders in your frame layout by using the
bordercolor attribute in either the <frameset> or <frame> start tags. When used in the <frameset> tag, bordercolor affects the borders of all frames in that particular frameset. When used in the <frame> tag, bordercolor affects only the borders in that particular frame. The value can be any valid color expression.Let's take the previous example and modify the source code so that it will display a 10 pixel black border in the top frame only:
<html>
<head>
<title>HTML Frames - An Advanced Frame Layout</title>
</head>
<frameset rows="20%,80%" framespacing="10" border="10">
<frame src="headercolor.htm" bordercolor="black">
<frameset cols="25%,75%" frameborder="no">
<frame src="menucolor.htm" name="menu">
<frame src="chapter1.htm" name="content">
</frameset>>
</frameset>
</html>
Here's what it looks like.
NOTES:
- Since the
frameborderattribute is omitted in the primary<frameset>tag then the default isframeborder="yes"(all frame borders are rendered). Theframespacing="10"attribute/value pair renders a 10 pixel border in Internet Explorer and Opera while theborder="10"attribute/value pair renders a 10 pixel border in Gecko-based browsers. - The
bordercolor="black"in the first<frame>tag renders the top frame row border black in Internet Explorer and Gecko-based browsers (bordercoloris not supported in Opera). - The
frameborder="no"attribute/value pair in the nested<frameset>tag turns off all frame borders in the bottom frame row (which is split into two columns).
Setting Margins
You can set the margins in each frame by using the
marginwidth and marginheight attributes in your <frame> tags. The marginwidth attribute will set the amount of white space to be displayed on the left and right side of your frame's contents while the marginheight attribute sets the amount of white space to be displayed on the top and bottom. The value is a number specifying the width or height in pixels.We'll build upon our previous example by setting all margins of the content frame. The top and bottom margins will be set to 30 pixels while the left and right margins will be set to 50 pixels.
Here's the source code:
<html>
<head>
<title>HTML Frames - An Advanced Frame Layout</title>
</head>
<frameset rows="20%,80%" framespacing="10" border="10">
<frame src="headercolor.htm" bordercolor="black">
<frameset cols="25%,75%" frameborder="no">
<frame src="menucolor.htm" name="menu">
<frame src="chapter1.htm" name="content"
marginheight="30" marginwidth="50">
</frameset>>
</frameset>
</html>
Here's what it looks like.
Setting User Controls
There are two user controls that you can turn on and off by using certain attributes in your
<frame> tags. These are detailed in the following:
noresize~ The default setting in HTML frames permits the user to resize any frame by hovering the mouse pointer over the frame border and then clicking-and-dragging. Inserting thenoresizeattribute in any<frame>tag will disable resizing in that frame.scrolling="yes|no|auto|"~ Frames automatically display horizontal or vertical scrollbars whenever the frame's content outsizes the allotted dimensions of that particular frame. If the frame's content fits within the allotted dimensions, however, then no scrollbars are displayed. This is the default setting for frames and is the same as using thescrolling="auto"attribute/value pair. If you wish to always display scrollbars in a particular frame then usescrolling="yes". If you wish to always hide scrollbars in a particular frame then usescrolling="no".
By now you have enough information to create a full-blown framed website but before you launch it, you should be well aware of some of the common problems when using frames...
| <~ BACK | TOP | NEXT ~> |
