19.12.2009, 07:59
|
Интересующийся
|
|
Регистрация: 10.09.2009
Сообщений: 20
|
|
Высота скрытого содержания в теге, если для него установлено overflow:hiden;
Подскажите, пожалуйста, свойство для определения высоты содержимого тега, если оно частично скрыто при помощи overflow:hidden;
Код:
|
<div style="overflow:hidden; height:10px;" id="teg1">
текст текст текст
<p>
текст текст текст текст
</p>
<div><img src="image.gif" /></div>
</div> |
Высота видимой части тега <div> с id="teg1" определяется как document.getElementById("teg1").offsetHeight. В данном примере она будет равна 10px. Хотя в теге содержится много текста и картинка, но offsetHeight возвратит размер видимой части тега. Но есть ещё скрытое содержание тега, скрываемое при помощи указания overflow:hidden;Как можно узнать высоту всего содержимого тега <div id="teg1">..</div>, даже если оно не отображается в браузере?
|
|
21.12.2009, 16:05
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
почему бы не добавлять overflow: hidden после того, как выяснишь высоту?
|
|
21.12.2009, 19:21
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от x-yuri
|
почему бы не добавлять overflow: hidden после того, как выяснишь высоту?
|
высоту не выяснить пока не применишь код в DOM.. а если применять без хиддена, то получится мерцание контента и т.п., я лично обхожу следующим образом, если элемент скрыт (display: none): visibility: hidden, display: fixed; узнаю высоту/ширину, восстанавливаю display, visibility;
Последний раз редактировалось PeaceCoder, 21.12.2009 в 19:24.
|
|
21.12.2009, 19:34
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
ну тогда уж display: none, узнаем высоту, а потом display: block; overflow: hidden. Хотя все равно контент будет перемещаться. display: fixed, кстати, не везде работает
а вообще все от ситуации зависит, о чем, надеюсь ТС нам сообщит. Типа, "когда нужно узнать высоту?" и "критично ли изменение расположения элементов на странице?"
|
|
21.12.2009, 20:13
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от x-yuri
|
у тогда уж display: none,
|
неузнаешь. при display: none элемент не имеет высоты и ширины.
Сообщение от x-yuri
|
display: fixed, кстати, не везде работает
|
не display, а position: fixed; перепутал. А на счет не все поддерживают - опять ие6 ? он с ие7 поддерживается.
|
|
21.12.2009, 22:51
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от PeaceCoder
|
неузнаешь. при display: none элемент не имеет высоты и ширины.
|
При visibility:hidden узнаешь.
|
|
21.12.2009, 23:15
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от B~Vladi
|
При visibility:hidden узнаешь.
|
А я что написал в посте? выше этого ответа?
|
|
21.12.2009, 23:40
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
var o = document.getElementById("teg1");
alert(/**/o.scrollHeight - o.clientHeight/**/)
Последний раз редактировалось subzey, 21.12.2009 в 23:45.
Причина: подсветка в коде
|
|
22.12.2009, 00:32
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от PeaceCoder
|
А я что написал в посте? выше этого ответа?
|
Аха, туплю
|
|
22.12.2009, 14:06
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
да тут по-моему все протупили, кроме subzey. Правда непонятно, зачем вычитать clientHeight, так что может и все
Сообщение от PeaceCoder
|
опять ие6 ?
|
естественно, неужели так сложно переместить элемент за верхний левый край?
|
|
|
|