2011-09-08 48 views
1

我试图制作一个“滑出”div,当它悬停在它上面时滑出。我想要发生的是我想让左边的div将右边的div推开,但不是低于div,而是右边。 有谁知道为什么会发生这种情况?为什么DIV被推到下面而不是在旁边?

这里是我的脚本:

.container { 
    width: 796px; 
    background-color: yellow; 
    overflow:hidden; 
} 
.left { 
    display:none; 
    float: left; 
    width: 256px; 
    background: green; 
} 
.right { 
    float: right; 
    width: 796px; 
    height: 100%; 
    background-color: red; 
} 

Here is a live demo 点击 '颜色框',然后选择 '显示左格'。

谢谢大家! :))))

回答

1

假设您的.left.right.container之内,被推倒的原因是因为没有足够的空间。

您已设置为.container等孩子即.left.right需要加起来796px一个width:796px。目前他们加起来为1052px,所以他们中的一个被推倒了,因为他们不能并排放在一起。

编辑:使用内容器方法在我的评论中提到和@ Matteo的答案中提到你需要调整下面的CSS。

.inner_container{ 
    width: 1396px; /* changed from 1052px */ 
} 
.right { 
    background-color: red; 
    float: left; /* changed from right */ 
    height: 100%; 
    width: 796px; 
} 

它需要1396px是因为它需要足够大,当.left扩展到600px.right769px仍然可以适应它旁边的原因。然后更改为float:left是必要的,以便.left.right之间没有间隙,并且在侧向推动时它仍保持可见。

+0

我不想容器 '放大',但对右列进行排序的去外面下起的容器。你明白我的意思吗?这就是为什么我试图溢出:隐藏。 – pufAmuf

+0

@pufAmuf:您可以为'.container'设置一个固定的高度,并使'.left'和'.right'具有相同的固定高度。这样,当一个人被推到另一个之下时,它将位于'.container'边缘的下方,因此当你有'overflow:hidden'设置时不会显示。或者如果高度会变化,可以使用足够宽的内部容器以容纳'.left'和'.right',同样溢出将被隐藏。 – tw16

+0

嗯,我不能得到这个工作出于某种原因 – pufAmuf

1

.container内部添加另一个div,其宽度足以容纳.left.right

http://jsfiddle.net/DRnRQ/

CSS:

.container { 
    width: 796px; 
    height: 300px; 
    background-color: yellow; 
    overflow:hidden; 
} 
.left { 
    float: left; 
    width: 256px; 
    background: green; 
} 
.right { 
    float: right; 
    width: 796px; 
    height: 100%; 
    background-color: red; 
} 
.inner_container { 
    width: 1052px; 
} 

MARKUP:

<div class="container"> 
    <div class="inner_container"> 
     <div class="left">a</div> 
     <div class="right">b</div> 
    </div> 
</div> 
+0

嗯,这似乎并不奏效。感谢您的提示,虽然:) – pufAmuf

+0

这必须工作,除非你使用一些破碎的浏览器。 –

+0

让我对公开版本进行更改:) – pufAmuf

相关问题