<BODY...>

The body of a HTML document, as its name suggests, contains all the text and images that make up the page, together with all the HTML elements that provide the control/formatting of the page. The format is :

<BODY>
The rest of the document included here.
See index for other HTML tags
</BODY>

NOTE : The <BODY> ... </BODY> elements are directly enclosed by the <HTML> ... </HTML> elements.

It is possible to control the document colour scheme and background by specifying certain attributes in the <BODY ...> declaration. However, it should be noted that most browsers provide the user with a means to over-ride colour schemes and prevent images from loading.

The BACKGROUND attribute can be used to point to an image file that will be tiled across the browser window, to provide a background for the document. Specifying :

<BODY BACKGROUND="imagename.gif">
Rest of the document goes here
</BODY>

would cause whatever text, images, etc. appeared in that document to be placed on a background consisting of the (imagename.gif) graphics file being tiled to cover the viewing area, much like bitmaps are used for Windows wallpaper. Browsers that support this attribute, allow the use of .GIF, .JPG images for HTML backgrounds, while Internet Explorer supports those, plus Windows .BMP files.

The BGCOLOR attribute allows setting of the background colour for the document

<BODY BGCOLOR="#rrggbb"> Rest of document goes here </BODY>

Where "#rrggbb" is a hexadecimal (base 16) red-green-blue triplet used to specify the background colour.

For two tables, showing the possible colours that can be described using reserved colour names, see this topic

Clearly, once the background colours/patterns have been changed, it will be necessary to also be able to control the foreground to establish the proper display contrasts.

TEXT
This attribute is used to control the colour of all the normal text in the document. This basically consists of all text that is not specially coloured to indicate a link. The format of TEXT is the same as that of BGCOLOR.

<BODY TEXT="#rrggbb">
Rest of document goes here
</BODY>

colour names are valid values of this attribute

LINK, VLINK, and ALINK attributes
These attributes let you control the colouring of link text. VLINK stands for visited link, and ALINK stands for active link (this sets the colour that the link text will be for the time that it is clicked on). The default colouring of these is: LINK=blue (#0000FF), VLINK=purple (#800080), and ALINK=red (#FF0000). Again, the format for these attributes is the same as that for BGCOLOR and TEXT.

<BODY LINK="#rrggbb" VLINK="#rrggbb" ALINK="#rrggbb">
Rest of document goes here
</BODY>

Colour names are valid values of this attribute.

NOTE : The ALINK attribute is Netscape specific.

The ability to watermark HTML documents, by fixing a background image so that it doesn't scroll as a normal background image does, has been added to Microsoft's Internet Explorer since version 2.0. To give a page with a background image a watermark background, add BGPROPERTIES=FIXED to the BODY element as follows:

<BODY BACKGROUND="filename.gif" BGPROPERTIES=FIXED>

NOTE : This attribute is Internet Explorer specific.

LEFTMARGIN attribute
This Internet Explorer attribute allows the left hand margin of the document to be set.

For example:

<BODY LEFTMARGIN="40">
This document is indented 40 pixels from the left hand edge of the browser window </BODY>

RIGHTMARGIN attribute
This Internet Explorer (4.0 and above) specific attribute allows the right margin of the document to be set in pixels.

TOPMARGIN attribute
This Internet Explorer specific attribute allows the top margin of the document to be set. It accepts a pixel value.

BOTTOMMARGIN attribute
This Internet Explorer specific attribute allows the bottom margin of the document to be set. It accepts a pixel value.

NOTE : All of the above attributes can be set to 0, making the page start and finis at the extreme edges the page.

LANG="language setting"
The LANG attribute can be used to specify what language the <ADDRESS> element is using. It accepts any valid ISO standard language abbreviation (for example "en" for English, "de" for German etc.) For more details, see the Document Localisation section for more details.

LANGUAGE="Scripting language"
The LANGUAGE attribute can be used to expressly specify which scripting language Internet Explorer 4.0 uses to interpret any scripting information used in the <ADDRESS> element. It can accept values of vbscript, vbs, javascript or jscript. The first two specify the scripting language as Visual Basic Script, the latter two specify it as using Javascript (the default scripting language used if no LANGUAGE attribute is set.

TITLE="Informational Text"
The Internet Explorer 4.0 (and above) specific TITLE attribute is used for informational purposes.

CLASS="Style Sheet class name"
The CLASS attribute is used to specify the <BODY> element as using a particular style sheet class. See the Style Sheets topic for details.

STYLE="In line style setting"
As well as using previously defined style sheet settings, the <BODY> element can have in-line stylings attached to it. See the Style Sheets topic for details.

ID="Unique element identifier"
The ID attribute can be used to either reference a unique style sheet identifier, or to provide a unique name for the <BODY> element for scripting purposes. Any <BODY> element with an ID attribute can be directly manipulated in script by referencing its ID attribute, rather than working through the All collection to determine the element. See the Scripting introduction topic for more information.

SCROLL attribute
The SCROLL attribute can be set to "yes" or "no". Setting it to "no" removes the documents scroll bars that would normally appear if the document is larger than a single viewing window. Care should be taken when using this attribute, as you can not guarantee (with older browsers) any screen/font resolutions.

Colouring Considerations.
Most graphical browsers allow the downloading of embedded images to be turned off to allow for faster downloading and display of the HTML document. If this has been activated by the user, then background images will not be loaded or displayed. If this happens and no BGCOLOR attribute was specified, then all of the foreground text and link colouring attributes (TEXT, LINK, VLINK and ALINK) will be ignored. This is so that documents are not rendered illegible if the text colour scheme authored for use over the set image clashes with the default browser background.

Using the 'Safe' browser palette
Netscape and Internet Explorer will both 're-colour' any colour settings that aren't part of the system palette at the users screen resolution. I.e. your Web pages may look fantastic on your system at 16 bit (65,536) or 24 bit (16,777,216) colour depth, but if the person viewing your pages has their colour depth set to 8 bit (256) colour, or even less, then the colour scheme may not be displayed as authored (in some cases, the colours may not be displayed at all - if what you have specified is a pale colour, it may turn out white, as the browser will choose the nearest 'solid' colour in its available palette). To allow for this, web pages that use colours should only use colours taken from what is known as the Safe browser palette (or Non-dithering palette). This palette consists of 216 colours (256 colours minus the palette entries reserved by the system, and those that vary across different systems (i.e. Windows/Macintosh platforms)). This means that you can be sure that the pages you are authoring (or the graphics in those pages) will display as authored on both Macintosh and Windows platforms. This palette uses multiples of 51 (33 in hexadecimal notation) for the Red, Green and Blue components. So, to be sure that the colours you use will not be dithered, only use #rrggbb triplets made up of components of 33 (00, 33, 66, 99, CC and FF). For instance, "#0066FF" would be a 'safe' colour, while "#FFF0FA" wouldn't (as it would be dithered to the nearest safe palette entry (i.e. "#FFFFFF" on 8-bit (256) colour systems).
For a page that dynamically creates a table and populates it with cells using the colours in the safe browser palette, see this topic
NOTE : This re-colouring 'problem' can be seen more clearly in .GIF images that attempt to use colours that aren't part of the safe browser palette. Instead of choosing the nearest solid colour entry, Netscape and Internet Explorer will both dither the graphic according to the colour palette they have available. Hence it becomes more crucial to have an understanding of the safe browser palette when creating graphics for display on the Web.

NOTE : All of the attributes detailed on this page can be set using Style Sheet definitions.


The <BODY> element, in accordance with Internet Explorer 4.0's Dynamic HTML document object model, supports various properties, methods and events. Note that most of these are Internet Explorer 4.0 specific, although some are supported by Netscape (in versions 3.0 and 4.0). Browser support is detailed with the property, method or event.

<BODY...> Properties
The <BODY...> element/object supports all of the standard Dynamic HTML properties (i.e. className, document, id, innerHTML, innerText, isTextEdit, lang, language, offsetHeight, offsetLeft, offsetParent, offsetTop, offsetWidth, outerHTML, outerText, parentElement, parentTextEdit, sourceIndex, style, tagName and title). Details of these can be found in the standard Dynamic HTML properties topics. The <BODY> element also supports the following properties:

background
The background property reflects the setting of the BACKGROUND attribute as described above. It is possible to change a documents background by manipulation of the background property.

bgColor
The bgColor property, reflects the setting (if any) of the BGCOLOR attribute. It also has read-write permissions, allowing dynamic changing of the documents background colour.

bgProperties
This reflects the BGPROPERTIES attribute. If the bgProperties property is set to "fixed", any background images will be 'fixed' to the viewing window. If set to "" (i.e. nothing), the background image will scroll with the document (which is the default setting).

bottomMargin
The bottomMargin property reflects the setting (if any) of the BOTTOMMARGIN. The bottomMargin property can be dynamically changed in script functions.

clientHeight
The clientHeight property reflects the height (in pixels) of the currently viewable portion of the document. The clientHeight property is read-only, but could be useful for determining the size of the users current browser window, to dynamically resize any document content.

clientWidth
The clientWidth property reflects the width (in pixels) of the currently viewable portion of the document. The clientWidth property is read-only, but could be useful for determining the size of the users current browser window, to dynamically resize any document content.

leftMargin
The leftMargin property reflects the setting (if any) of the LEFTMARGIN. The leftMargin property can be dynamically changed in script functions.

link (vlink and alink) The *link properties reflect the settings of their respective attributes (LINK, ALINK and VLINK). All three can be changed through scripting.

rightMargin
The rightMargin property reflects the setting (if any) of the RIGHTMARGIN. The rightMargin property can be dynamically changed in script functions.

scroll
The scroll property reflects the setting (if any) of the SCROLL. The scroll property can be dynamically changed in script functions.

scrollHeight
The scrollHeight property reflects the documents total scrollable height (in pixels). It differs from the clientWidth and offsetWidth properties, in that when applied to the <BODY> element, they only return a value corresponding to the currently visible portion of the document, whereas the scrollHeight property returns a value representing the total height of the visible document content. (Note that for the <BODY> element, clientHeight and offsetHeight are essentially identical)

scrollLeft
The scrollLeft property reflects a value representing the distance between the left-most edge of the element and the left hand edge of the current viewing window. When used with the <BODY> element, the scrollLeft property is a value indicative of the extent to which the document has been scrolled sideways.

scrollTop
The scrollTop property returns a value that represents the distance between the top-most edge of the element and the top-most edge of the current viewing window. When used with the <BODY> element, the scrollTop property is a value indicative of the extent to which the document has been scrolled vertically. As an example, the button below will display the current document <BODY>'s scrollTop property on the status bar. Click it to get the value, then scroll the page either up or down and click it again. Scrolling the page down increases the scrollTop property value, scrolling the page up decreases it.

scrollWidth
Like the scrollHeight property, the scrollWidth property reflects a value that represents the total scrollable width of the document. The same nuances between it and the clientWidth and offsetWidth properties exist, as exist between the scrollHeight, clientHeight and offsetHeight properties.

text
The text property reflects the setting (if any) of the TEXT, which can be used to set default text colouring for the document. The text property can be dynamically changed in script functions.

scrolltopMargin
The topMargin property reflects the setting (if any) of the TOPMARGIN. The topMargin property can be dynamically changed in script functions.

<BODY...> Methods
The <BODY...> element/object supports all of the standard Dynamic HTML methods (i.e. click, contains, getAttribute, insertAdjacentHTML, insertAdjacentText, removeAttribute, scrollIntoView and setAttribute). Details of these can be found in the standard Dynamic HTML Methods topics. The <BODY> element also supports the following methods:

blur
The blur method can be used to force a document to lose the focus. Doing this would fire the onblur event.

blur
The createTextRange method is used for creating a Text Range from the document content. For more information, see the Text Range Object topic.

focus
The focus method can be used to force a document to gain the focus. Doing this would fire the onfocus event.

<BODY...> Events
The <BODY...> element/object supports all of the standard Dynamic HTML events (i.e. onclick, ondblclick, ondragstart, onfilterchange, onhelp, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup and onselectstart). Details of these can be found in the standard Dynamic HTML events topics. The <BODY> attribute also supports the following events:

onblur
The onblur event fires when the current document loses the focus. For example, if your site uses two or more windows for display, you could effectively track the users location by using the onblur and onfocus events in the relevant <BODY> elements.

onfocus
The onfocus event is fired whenever the document receives the focus. As mentioned above, this can be especially useful for executing script functions to determine the users location, should your site/application use multiple browser windows.
Note : The onfocus event is also supported by Netscape

onload
The onload event can be used to execute script functions when the page loads. For example, this HTMLib re-creates a 'non-scrolling region', by executing a script function using the onload event in every document's <BODY> element. The script function loads the title document (or the main content document) immediately after the calling document has loaded.
Note : The onfocus event is also supported by Netscape

onunload
The onunload event is the reverse of the onload event - so, as you'd expect, it can be used to execute script functions when the current document is unloaded from the browser.
Note : The onfocus event is also supported by Netscape

Note : Netscape supports the onblur, onfocus, onload and onunload events for the <BODY> element as part of its Window Object.

Comments: