document.body.clientWidth (in quirksmode) is always the width of the window. So whenever you alert:
Code:
alert("Width: " + document.body.clientWidth);
as long as the width of the window hasn't changed, the number reported will not either. To get a better idea of the actual width of the body element, use:
Code:
alert("Width: " + document.body.offsetWidth);
However, if you are using this on a page with a valid URL DOCTYPE, you will need to use document.documentElement instead of document.body in your expression in the css:
Code:
body
{
width:expression(document.documentElement.clientWidth < 1258? "1258px": "100%" );
}
Try this though (notice the valid URL DOCTYPE):
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
body
{
width:expression(document.documentElement.clientWidth <= 1258? "1258px": "auto" );
border:1px solid red;
}
</style>
</head>
<body>
<script type="text/javascript">
alert(document.body.offsetWidth)
</script>
</body>
</html>
The default for the body is 100% (minus margins and/or padding), so by making it auto when there is more room, it will still be 100% without being larger than the window. The red border will give you a visual key to where the edges of the body are. You can remove it later, once you are satisfied that things are working.
Bookmarks