|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.09.2015, 21:08 | #1 |
Регистрация: 26.07.2015
Сообщений: 6
|
Как в javascript задать диву высоту из размера другого дива?
Вообще-то нужно диву задать размер из вот такого примера: от высоты видимой части окна отнять высоту остальных дивов, и оставшееся задать моему диву, чтобы он растянулся на весь экран. Я сделал 4 переменные. одна переменная var size_of_browser_window = document.documentElement.clientHeig ht , остальные в подобном духе, то есть я узнаю высоту остальных дивов, и в последней переменной делаю пример который написал в начале и мне необходимо эту последнюю переменную задать моему диву вот в таком коде например document.getElementById("content"). style.height = '700px' , но чтоб вместо пикселей я задал свою переменную, а то если пишу переменную, то не работает код, страница идет не на весь экран, а чуть ли не наполовину, футер около середины экрана находится. И просьба без гневных коментов, обьясните по нормальному, что я делаю не так.
|
18.09.2015, 22:20 | #2 |
Форумчанин
Регистрация: 19.01.2015
Сообщений: 158
|
Ой, как непонятно написано...
Тут без тестового примера тяжело понять что к чему... А задача какая?
Может скрипт вообще не нужен, всё решается на CSS. Через offsetHeight находим высоту всех дивов, а потом вычитаем из высоты окна. Что-то в этом роде Код HTML:
var heightWindow = Math.max( document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight ); var h1 = document.getElementById('div1').offsetHeight; var h2 = document.getElementById('div2').offsetHeight; var h3 = document.getElementById('div3').offsetHeight; document.getElementById('content').style.height = heightWindow - h1 - h2 - h3 + 'px'; |
19.09.2015, 19:38 | #3 | |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
Цитата:
SQLPowerUser, такую задачу, по крайней мере как ее описал автор, проще (удобнее, быстрее, надежней) решать через myDomNode.getBoundingClientRect(), нужно только посчитать его на каждый объект и высоту вьюпорта. А функция сразу вернет объект, где будет топ от вьюпорта и низ от вьюпорта. Можно еще height юзануть, но тогда не будет работать в самом лучшем браузере версии 8 и ниже. PS. функция возвращает размеры слоя, который отдается на рендер, так что если каким-либо образом какой-нибудь элемент (включая псевдо) посмел высунуться из блока без display:none;, то этот способ не подходит, рамка его захватит. PSS. но лучше избавиться от таких элементов, либо учесть от них погрешку, ибо этот метод берет инфу из рефлоу браузера и быстр как понос.
Alar, верни репу!
|
|
20.09.2015, 13:13 | #4 |
Регистрация: 26.07.2015
Сообщений: 6
|
Вопрос решил уже. Просто забыл + 'px' дописать к переменной.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задать высоту FrameWork Element | Nikulov | WPF, UWP, WinRT, XAML | 2 | 14.03.2014 23:13 |
VBA: как задать массив с листа в Excel неизвестного размера | Ixituni | Помощь студентам | 7 | 24.04.2013 15:20 |
Как сделать блок на всю высоту окна минус высоту шапки и футера | Qaliti | HTML и CSS | 3 | 19.07.2012 13:20 |
Как при нажатии на кнопку менять стиль дива? скрипт не работает, подправьте | diamed | JavaScript, Ajax | 4 | 25.06.2011 18:04 |
футер прицепился к диву | ic-e | HTML и CSS | 0 | 15.09.2009 16:31 |