2011-09-28 88 views
7

我有一个绝对定位的div与溢出自动。在这个div里面是另一个绝对定位的div。我的问题是这个子div由于溢出而被切断。我想让它逃离容器div,因为它没有设置溢出。我曾尝试设置Z索引,但它没有帮助。我能做什么?绝对定位的div与溢出自动导致子绝对div被切断

HTML

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

CSS

.parent { 
    position:absolute; 
    z-index:0 
    overflow:auto; 

    width:400px; 
    height:400px; 

    border:1px solid #000; 
} 

.child { 
    poisiton:absolute; 
    z-index:1 

    width:300px; 
    height:450px; 

    border:1px solid #f00; 
} 
+1

+1。 [jsfiddle](http://jsfiddle.net)很受欢迎'围绕这些部分。 – Alex

+1

我已经这样做了。正如你所看到的,小孩div不会从父母那里出来。 – user969622

+1

如果你不想滚动,你为什么使用'overflow:auto'? – Jacob

回答

1

如果你想一些元素不会溢出家长和一些元素没有,你会更好,让目前的孩子目前父母以外的div。只要让它成为一个绝对定位的同行。

+0

那我怎么才能让它从父div中的引用点出现?例如,如果它位于父div内,并且在某些文本旁边,它会弹出该文本旁边,但是如果我将div移到父div之外 - 那么如何让该对象在该子文本旁边弹出不再在它旁边? – user969622

+0

含义您希望它与其余内容一起滚动并弹出以及?我想你会需要JavaScript来达到这个效果。 – Jacob

+0

如果您正在使用jQuery,那么您可以使用滚动事件。然后您必须计算滚动位置并根据该位置移动第二个div。请参阅http://api.jquery.com/scroll/。 – Jacob

2

看看你是否可以依靠另一种方法清除你的浮标。将您的CSS更改为overflow: visible绝对是一个很好的解决方案。

你其他的解决办法是把它的容器外的股利,因此没有得到切断,并把他们一个新的容器的内外:

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

CSS:

.container { 
    /* apply positioning from .parent */ 
} 
.parent { 
    position: absolute; 
    top: 0; 
    left: 0; 
} 
.child { 
    /* apply positioning from .child */ 
}