2011-02-10 3 views
0

У меня есть два divs, оба с position:absolute;, один внутри другого. Родитель не находится в месте, где он может быть установлен как position:relative без дополнительного уровня сложности (вокруг него много других элементов, которые я должен был бы учитывать, чтобы разместить его там, где он должен быть, в самой верхней части страницы, над всем). Детский элемент создается для того, чтобы придерживаться нижней части родителя.Почему мой DIV клик его дочерний DIV, когда jQuery перемещает его в IE?

В Chrome, Safari, Firefox, все работает великолепно.

В IE он работает до тех пор, пока jQuery не перемещает родительский элемент - в этот момент родительский элемент закрепил его, поэтому вы можете едва видеть верхнюю часть дочернего элемента. Мне кажется, что я читал об этом, об IE отсечения дочерних элементов, но я не могу найти ответ, который относится к моему делу.

Это довольно просто, в основном:

<div id="parent" style="position:absolute;top:0;left:0;"> 
    [content] 
    <div id="tab" style="position:absolute;bottom:-30px;left:0;width:64px;height:32px;background-image:(...);"></div> 
</div> 
<script> 
$(document).ready(function() { 
    $("#tab").click(function() { 
      $("#parent").animate({"top":"-50px"},300); 
     }); 
}); 
</script> 

ответ

0

Если вы явно установить высоту parent элемента вы не должны иметь проблем больше. Если вы не знаете во время рендеринга, какой должна быть высота (IE это динамический контент), то что-то вроде этого должно работать:

$('#parent').height(function() { 
    var parentHeight = 0; 
    $('#parent').children().each(function() { 
     parentHeight += $(this).height(); 
    }); 
    return parentHeight; 
}); 
+0

Почему бы мне просто не использовать '$ (" # parent "). Css ({. "высота": $ ("# родитель") высота()}); '? Насколько я понимаю, это значение рассчитывается, а не только из CSS. Фактически, я сделал это, и он, кажется, применяет правильную высоту как явное значение CSS, но, похоже, она не решает проблему отсечения. Проблема с вашим решением в том, что у меня много детей, не все из которых вертикально сложены, поэтому кажется, что это не приведет к генерации нужного числа ... –

+0

'Padding-bottom' все равно будет заполнять фон 'color'' родителя', не так ли? –

+1

Да, да, но вы можете обойти эту проблему, обернув все внутри «parent» с помощью «

[content]
» и установив для него цвет фона. –

Смежные вопросы