2013-09-21 5 views
-1

Я хочу, чтобы высота дочернего div составляла процент от дедушки и бабушки с помощью jquery.Создание дочернего div в процентах в высоте бабушки и дедушки с использованием jquery

grandparent 
    parent 
     child 

Я хочу, чтобы ребенок был процентом в высоту своего дедушки и бабушки, так что он реагирует на окно просмотра.

ответ

1

Эрик, вы не были очень конкретны.

Например, если «parent» является фиксированной процентной высотой «grandparent», то это простая математика, чтобы установить процентную высоту дочернего элемента в CSS, не требуется JS.

В противном случае, с JQuery, если вы хотите, чтобы ребенок 25% высота прародителей:

var grandparent_height = $('#grandparent').height(); 
$('#child').height(grandparent_height * 0.25); 

Есть еще на ваш вопрос, чем это?

Если вы хотите установить размер дочернего элемента по отношению к окну просмотра, и вы довольны работой только с современными браузерами, то вы можете использовать модуль CSS vh (1vh - 1% высоты видового экрана) и установить

#child { 
    height: 25vh; 
} 

Различные браузеры могут возвращать разные результаты при измерении размера видового экрана. Вот хороший ресурс (и библиотека JavaScript) о различном лечении браузера: http://verge.airve.com/)

+0

Эй, Спасибо большое. Я использовал $ (". Menu_container"). Css ('height', $ ('. Window'). Height() - 200); который -200px, но я не мог заставить его быть процентной базой. Я знаю, что раньше я не предоставлял информацию, но с кодом есть еще одна вещь. Это то, что мой дед-дед имеет высоту и ширину 100%, так что это полный экран. Так как видовой экран изменяется, значит, div. И я надеялся, что jquery на процентной основе ответит на изменение видового экрана, но по какой-то причине он этого не делает. какие-либо предложения? В принципе, мне нужно, чтобы дочерний div отвечал на видовое окно по мере его изменения. – Erik

+0

Если вы намерены установить рост ребенка в процентах от области просмотра, и вы счастливы использовать javascript (или JQuery), то не беспокойтесь о размерах дедушки и бабушки, задайте высоту ребенка напрямую. Итак, абстрагируясь от проблем, связанных с перекрестным браузером, 'viewportH = $ (window) .height();' и устанавливаем '$ ('# child'). Height (0.25 * viewportH);' Если вас беспокоит совместимость с кросс-браузером, проверьте ссылку, которую я разместил, которая позаботится об этом для вас. – terraling

1

если это ваш код:

<div> 
    <div> 
    <div class="child"> 
    </div> 
    </div> 
</div> 

вы, вероятно, можете сделать что-то вроде:

var percentValue; // Set your percent here 
var grandparentHeight = $('.child').parent().parent().height(); 
$('.child').css({'height' : grandparentHeight * percentValue});