Как узнать реальную ширину div`a, если style.width = 100%

shureen

Милорд Лось Кристофер
Как узнать реальную ширину div`a, если style.width = 100%

Подскажите, плиззз!
Суть проста в IE не работает такое свойтво как max-width, поэтому приходится извращаться. Мне нужно чтобы этот div растягивался не более чем до 1280px. Нашёл в инете вот такое:
Код:
width:expression(document.body.clientWidth > 1280? "1280px": "auto" );
Но что не пашет... Наверно нужно вместо body.clientWidth писать что-то другое? Начал делать на javascript`е, но вот сталкнулся с такой проблемой:
есть
Код:
<div id = "test">
и есть стиль
Код:
#test
{
        width: 100%;
	border: 0px;
	margin:0 auto;
	z-index:2;
}
Когда на javascript`е пишет что-нибудь типа
Код:
alert (document.getElementById('test').width), то выдаётся notdefined, а если alert (document.getElementById('test').style.width), то пустое окошко
Ширина обязательно должна быть 100%, если указать явно в JS:
Код:
document.getElementById('test').style.width = 100%; alert (document.getElementById('test').style.width)
То так и выводит 100%.

В принце весь вопрос в заголовке!

Заранее благодарен!!!
 

ZigFreeD

Новичок
попробуй используя эту функцию
Код:
function getElementPosition(elemId)
{
    var elem = document.getElementById(elemId);
	
    var w = elem.offsetWidth;
    var h = elem.offsetHeight;
	
    var l = 0;
    var t = 0;
	
    while (elem)
    {
        l += elem.offsetLeft;
        t += elem.offsetTop;
        elem = elem.offsetParent;
    }

    return {"left":l, "top":t, "width": w, "height":h};
}
вызывается вот так:
Код:
pos = getElementPosition("test");
var width = pos.width;
var height = pos.height;
var top = pos.top;
var left = pos.left;
 

shureen

Милорд Лось Кристофер
Спасибо! попробую

-~{}~ 04.09.07 14:05:

Функция работает, как нужно спасибо огромное!!! Но что-то не получается эмулировать max-width через javascript. Делаю так:
Код:
function resizeLayer ()
{
	el = document.getElementById ('test');
	pos = getElementPosition ('test')
	if (pos.width > 1280)
		el.style.width = 1280;
}

window.onload = function ()
{
	setInterval ("resizeLayer()", 100);
}
один раз то сделается, а как возвратить свойству style.width = 100%? если делать так:
Код:
function resizeLayer ()
{
	el = document.getElementById ('test');
	el.style.width = '100%';
	pos = getElementPosition ('test')
	if (pos.width > 1280)
		el.style.width = 1280;
	else
		el.style.width = '100%'
}
то div всё время ресайзится. Подскажите пожалуйста нормально рабочий пример эмулирования max-width на javascript`е??? Заранее благодарен!!!
 
Сверху