Как IE рассчитывает offsetWidth/offsetHeight?
В общем такая ерунда: есть скрипт, который показывает модальное окошко. Скрипту можно явно указать размеры width и height или оставить 0 и 0, и тогда он рассчитывает размеры исходя из содержимого.
Вырезка: function(c,w,h){ if(!w||!h){ var x=p.style.width, y=p.style.height; (typeof c == 'object') ? b.appendChild(c) : b.innerHTML=c; p.style.width=w?w+'px':''; p.style.height=h?h+'px':''; b.style.display=''; w=parseInt(b.offsetWidth); h=parseInt(b.offsetHeight-12); // -12 для нормализации высоты b.style.display='none'; p.style.width=x; p.style.height=y; }else{ (typeof c == 'object') ? b.appendChild(c) : b.innerHTML=c; } Так вот… В ИЕ (даже ИЕ8), если запустить на локальной машине b.offsetWidth и b.offsetHeight рассчитываются правильно (например 300 и 190), а если запускать по сети — неправильно (660 и 210). В объекте b есть просто DIV, внутри него DIV с «float: right» и DIV с «clear: right». И вот если убрать этот DIV вообще из объекта b или убрать свойство «float: right», то тогда ИЕ считает b.offsetWidth нормально и локально и через сеть… Объясните мне кто-нибудь — почему? Или хотя бы как ИЕ считает offsetWidth. |
Никто не знает?
|
Часовой пояс GMT +3, время: 10:25. |