Для некоторых задач требуется размещать слой по правому краю окна браузера. Но, поскольку, положение слоя задается в пикселах, для его размещения требуется знать, сколько же именно пикселов занимает окно браузера.
Для определения ширины и высоты рабочей области браузерами используется разный подход. Internet Explorer и Opera получают значение ширины через метод document.body.clientWidth, а Netscape — через window.innerWidth. Высота определяется аналогично, только Width меняется на Height. В конечном итоге, функции, написанные на JavaScript, будут иметь вид, как показано в примере 1.
Пример 1. Функции для определения высоты и шириныЧтобы использовать приведенные функции, вначале нужно создать слой с абсолютным позиционированием.
Пример 2. Создание слояПоложение слоя определяется параметром z-index. Чтобы слой располагался поверх остального текста, его значение следует задавать положительным числом больше нуля. Если слой нужно размещать ниже текста — используется отрицательное значение.
Для указания положения слоя в правом верхнем углу, напишем функцию putLayer.
Пример 3. Задание положения слоя в правом углу браузераПоскольку положение слоя отсчитывается от левого верхнего угла, следует от ширины рабочей области отнять ширину слоя (в примере — 100 пикселей). Если слой будет размещаться в нижнем углу окна браузера, то же самое следует проделать и с высотой.
Чтобы заданный слой всегда оставался в указанном месте и не менял свое положение при изменении размера окна, используется функция setTimeout, которая каждые 1000 миллисекунд (или 1 секунда по другому) восстанавливает положение слоя.
Вызывать функцию приведенную в примере 3 можно по разному, например, через событие onLoad.
Пример 4. Автоматический вызов функцииПриведем полные листинги размещения слоя в разных углах браузера.
 IE = (document.all);
        NC = (document.layers);
        Opera = (document.getElementById);
function getHeight() {
        if (IE || Opera) send = document.body.clientHeight;
        if (NC) send = window.innerHeight;
        return send;
        }
function getWidth() {
        if (IE || Opera) send = document.body.clientWidth;
        if (NC) send = window.innerWidth;
        return send;
        }
function putLayer() {
        widthBrowser = getWidth() - 100;
        if(IE) eval('document.all["xyz"].style.left = widthBrowser');
        if(NC) eval('document.layers["xyz"].left = widthBrowser');
        if(Opera) eval('document.getElementById("xyz").style.left 
        = widthBrowser');
        setTimeout('putLayer()',1000);
        }
</script>
        </head>
<body onLoad="putLayer()">
<div id=xyz style="position: absolute; top: 0px; 
        width: 100px; z-index: 1">
        <table bgcolor=#c0c0c0 width=100 height=200 border=1 bordercolor=black 
        cellspacing=0>
        <tr>
        <td>Содержание</td>
        </table>
        </div>
        
        </body>
        </html>
<script language="JavaScript">
// функции getHeight и getWidth описываются как в примере 1
function putLayer() {
        widthBrowser = getWidth() - 100;
        heightBrowser = getHeight() - 200;
if(IE) { 
        eval('document.all["xyz"].style.left = widthBrowser');
        eval('document.all["xyz"].style.top = heightBrowser');
        }
if(NC) {
        eval('document.layers["xyz"].left = widthBrowser');
        eval('document.layers["xyz"].top = heightBrowser');
        }
if(Opera) {
        eval('document.getElementById("xyz").style.left 
        = widthBrowser');
        eval('document.getElementById("xyz").style.top = 
        heightBrowser');
        }
setTimeout('putLayer()',1000);
        }
      
</script>
        </head>
<body onLoad="putLayer()">
<div id=xyz style="position: absolute; top: 0px; 
        width: 100px; z-index: 1">
        <table bgcolor=#c0c0c0 width=100 height=200 border=1 bordercolor=black 
        cellspacing=0>
        <tr>
        <td>Содержание</td>
        </table>
        </div>
        
        </body>
        </html>
<html>
        <head> <script language="JavaScript">
// функции getHeight и getWidth описываются как в примере 1
function putLayer() {
        heightBrowser = getHeight() - 200;
if(IE) eval('document.all["xyz"].style.top = heightBrowser');
        if(NC) eval('document.layers["xyz"].top = heightBrowser');
        if(Opera) eval('document.getElementById("xyz").style.top 
        = heightBrowser');
setTimeout('putLayer()',1000);
        }
</script>
        </head>
<body onLoad="putLayer()">
<div id=xyz style="position: absolute; left: 0px; 
        top: 0px; width: 100px; z-index: 1">
        <table bgcolor=#c0c0c0 width=100 height=200 border=1 bordercolor=black 
        cellspacing=0>
        <tr>
        <td>Содержание</td>
        </table>
        </div>