我发现了很多类似的问题,并尝试了几种解决方案(包括一些所谓的“圣杯”CSS 布局),但它们并不能完全满足我的需要。
我有一个包含 id 的 div (一个包含 CSS 的块)right
。在它的左侧,我想要一个固定宽度的 div (一个分隔条,但它的用途并不重要; id splitpane
);在右侧,填充其余空间,另一个 div(right-box
下面的 id)。
我尝试制作两个内部 div display: inline-block
(使用vertical-align: top
),将左侧设置为width: 3px
,但无法将右侧设置为 100% - 3px 的宽度。我也尝试过使用float: left
//技巧margin-left: -100%
,margin-left: 3px
但它有同样的问题:100% 加上 3px 溢出父包含块并导致滚动条弹出。(当然,问题不是滚动条本身;我可以用overflow: hidden
它来删除它,但右边的内容会被截断。)
目前我正在使用width: 99.5%
正确的 div,但这是一个可怕的 hack(并且会根据屏幕宽度溢出)。它看起来有点像这样:
<div id="right"><div id="splitpane"></div><div id="right-box">
...
</div></div>
使用 CSS 如下(浮动版本,但 inline-block 版本类似):
#right {
display: inline-block;
vertical-align: top;
height: 100%;
width: 85%; /* this is part of a larger div */
}
#right-box {
width: 99.5%; /* stupid hack; actually want 100% - 3px for splitter */
height: 100%;
}
#splitpane {
float: left;
width: 3px;
height: 100%;
background: white;
border-left: solid gray 1px;
border-right: solid gray 1px;
cursor: e-resize;
}
甚至有可能做到这一点吗?这是针对内部应用程序的。所以解决方案只需要在 Firefox 3 中运行(如果它们特定于 FF3,最好是因为该解决方案符合标准,但其他浏览器不符合标准,而不是因为它仅使用 Firefox代码)。