【发布时间】:2013-03-17 07:26:46
【问题描述】:
我发现了很多类似的问题,并尝试了几种解决方案(包括一些所谓的“圣杯”CSS 布局),但它们并不能完全满足我的需求。
我有一个 id 为 right 的包含 div(一个包含 CSS 的块)。在它的左侧,我想要一个固定宽度的 div(一个分隔条,但它的用途并不重要;id splitpane);在右侧,填充其余空间,另一个 div(id right-box 下面)。
我尝试制作两个内部 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代码)。
【问题讨论】: