【发布时间】:2011-11-09 15:48:35
【问题描述】:
我想要一个包含三个相邻 div 的布局。侧 div 具有静态宽度(可能通过 javascript 更改),中心 div 填充剩余区域。当第一个 div 的大小发生变化时,它只影响中心的一个。它类似于由三列组成的表格(具有动态渲染)。
好的,但问题出在哪里。 问题是,如果我将左浮动 div 放入第一列,并在第二列和第三列中阻止 div,则阻止 div 的行为方式很奇怪。它们在第一列的浮动 div 下方的列中呈现。
一个例子。 在第一列和第二列中,我有浮动 div,第三列中有块 div。块 div 围绕浮动 div 的高度向下移动。中心列中的 Div 不会在其 y 位置移动,只是它具有 float left 属性。
我希望三个布局 div 中的每一个都相互独立。我不知道为什么第三列中的元素在前两列中浮动 div(带有 float 属性)。
代码:
<div style="margin: auto; display: table; width: 260px;">
<div style="display: table-row;">
<div style="display: table-cell; width: 100px;">
<div style="float: left; width: 40px; height: 50px;">COL1</div>
</div>
<div style="display: table-cell;">
<div style="float: left; height: 50px; width: 40px;">COL2</div>
</div style="display: table-cell; width: 100px;">
<div class="sideContainer">
<div>COL3</div>
</div>
</div>
</div>
结果: result
如何解决。如何使所有布局 div(列)彼此独立。有什么想法吗?
【问题讨论】:
-
您在关闭标签上有一个属性:
</div style=...> -
这是我的错误。关闭选项卡上的样式应该是 'class='sideContainer';这就是结果链接中呈现的内容
-
但是,我想我明白它为什么会这样。因此,例如:中心布局 div 中的浮动 div 是其父级的第一个子级。因此,如果它具有浮动属性,但在他的左边没有任何东西可以浮动,它会浮动她的父级上一个兄弟姐妹(第一个布局 div)。为了解决这个问题,我需要在浮动 div 前面插入一些东西(即宽度等于 0 的 div)。或者如果我有两个浮动 div,第一个必须是 float: none 和 display: inline。
标签: css positioning css-float css-tables