layouthandler - standards compilant 100% width and 100% height tableless web page layout template
layouthandler.js
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Page</title>
<script type="text/javascript">
function InitLayout()
{
var Layer = document.getElementsByTagName('div');
var DynamicHeight = document.body.clientHeight;
var DynamicWidth = document.body.clientWidth;
for (var i = 0; i < Layer.length; i++)
{
if (Layer[i].className == 'BannerLayer')
DynamicHeight -= Layer[i].offsetHeight;
else if (Layer[i].className == 'MenuLayer')
DynamicWidth -= Layer[i].offsetWidth;
}
for (var j = 0; j < Layer.length; j++)
{
if (Layer[j].className == 'BannerLayer')
Layer[j].style.width = document.body.clientWidth + 'px';
else if (Layer[j].className == 'MenuLayer')
Layer[j].style.height = DynamicHeight + 'px';
else if (Layer[j].className == 'ContentLayer')
{
Layer[j].style.width = DynamicWidth + 'px';
Layer[j].style.height = DynamicHeight + 'px';
}
}
}
function DelayedInitLayout()
{
self.setTimeout('InitLayout()', 1);
}
if (window.addEventListener)
{
window.addEventListener("load", DelayedInitLayout, false);
window.addEventListener("resize", DelayedInitLayout, false);
}
else if (window.attachEvent) // ie
{
window.attachEvent('onload', DelayedInitLayout);
window.attachEvent('onresize', DelayedInitLayout);
}
</script>
<style type="text/css">
html, body
{
margin: 0px;
padding: 0px;
border: none;
width: 100%;
height: 100%;
overflow: hidden;
}
.BannerLayer
{
white-space: nowrap;
clear: both;
}
.MenuLayer
{
width: 160px;
overflow: auto;
float: left;
}
.ContentLayer
{
overflow: auto;
float: left;
}
</style>
</head>
<body>
<div class="BannerLayer">
<!-- Header/Banner -->
</div>
<div class="MenuLayer">
<!-- Submenu -->
</div>
<div class="ContentLayer">
<!-- Content -->
</div>
<div class="BannerLayer">
<!-- Footer -->
</div>
</body>
</html>