2012-11-12 84 views
0

我想知道是否有任何方法可以解決我遇到的問題。位置:絕對導致元素消失

我有三個div的嵌套在彼此

<div class="section"> 
<div class="parent"> 
<div class="child"> 
Some text.. blah blah. 
</div> 
</div> 
</div> 

我做了家長的高度由孩子與這個JavaScript高度決定:

$(document).ready(function() { 
      var $holdme = $(".holdme"); 
      $holdme.parent().height($holdme.outerHeight()); 
     }); 

然而,這隻能當子元素沒有被絕對定位。當我將.child設置爲絕對位置時,會導致父元素和子元素消失。是否有任何方法將孩子設置爲絕對值,並使父容器的高度變化以適合孩子的身高?

這是一個小提琴......現在它工作正常,但絕對定位沒有設置爲子元素。從左右的位置刪除註釋標記:絕對會破壞所有內容。

http://jsfiddle.net/jjalbert/dHt7L/3/

+0

當然你沒事,那是一個愚蠢的錯誤。不幸的是,我仍然在實際的代碼中遇到問題......我只是認爲我在小提琴中重新創建了問題,但是我忘了更改該類,從而產生了一個新問題:P – jjalbert

+0

可能最好留下這個問題,因爲它是,找出如何重現問題,並用更新的小提琴問另一個問題。如果我看到新版本,我會盡力回答。 –

回答

2

您的HTML不使用holdme類,和你的小提琴沒有進口的jQuery。 Correcting both of these makes it work fine

$(document).ready(function() { 
     var $holdme = $(".child"); 
     $holdme.parent().height($holdme.outerHeight()); 
    }); 
2

有任何地方不加.holdme類...

如果是這樣.chlid

var $holdme = $(".child"); 

,只要你想,如果你做出這種改變它的工作原理..

演示在http://jsfiddle.net/gaby/dHt7L/8/

1

繼承人的工作版本小提琴:

http://jsfiddle.net/dHt7L/10/

$(document).ready(function() { 
     var $holdme = $(".child"); 
     $holdme.parent().height($holdme.outerHeight()); 
    }); 

我刪除了您的溢出:規則..不知道它是否重要,但是我的工作流程的一部分

相關問題