Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Как узнать текущую высоту (ширину) DIVa? |
Автор: Riccon 15.3.2005, 14:11 | ||
Суть вот в чём. Высота DIVa вариативна, и меняется в зависимотсти от количества в ней содержания. В стилях высота не была указана, по этому имеем то, что имеем. Можно ли узнать высоту дива еще как-то, кроме как, при использовании clientHeight? И где можно про этот clientHeight почитать. Я не нашол ![]() Ведёт он себя как-то странно: Если я назначаю стилю высоту, полученную посредством clientHeight, то логично предположить, что оба значения будут одинаковыми. Так и есть. Но, если в стилях Div'a, есть бордюр, то разница в выстое, между obj.style.height и obj.clientHeight, будет в 2 пикселя(2 бордюра по одному пикселю) в пользу obj.style.height.
Почему это? ![]() |
Автор: Aliance 15.3.2005, 16:31 | ||||
|
Автор: Riccon 15.3.2005, 16:59 |
О. спасибо! ![]() А всё таки, что это за clientHeight? |
Автор: Aliance 15.3.2005, 17:16 |
MSDN ![]()
|
Автор: Sardar 16.3.2005, 02:03 | ||
Да, бордеры отрисовываются "наружу" от контейнера. Также полезно знать про scroll(Width|Height) которые дают абсолютные размеры содержимого, что необходимо при скролинге:
Пример выше по разному работает в Мозилле и ИЕ. offset(Width|Height) для test1 даст его актуальные размеры на странице, а scroll(Width|Height) размеры содержимого. Теперь посмотрим на test2, offset(Width|Height) дают в ИЕ размеры содержимого слоя, а в мозилле размеры видимого пространства предка! То же самое и для scroll(Width|Height). Поэтому размер test2 можно узнать только опросив scroll(Width|Height) его предка. На мой взгляд это не логично ![]() |
Автор: NAV 31.3.2005, 11:41 | ||
Ходи по оффсетам родителей. Надежный способ. Я, к примеру, его использовал, чтобы при ресайзе окна всплывающая DIV-менюшка "бегала" за своей первоначальной точкой базирования ![]()
P.S. Кстати, для вычислений высот и т.п. можно использовать специальные элементы-"измерители" ![]() |