在尝试以下操作时,我遇到了一些奇怪的行为(请参阅 jsfiddle:http: //jsfiddle.net/9nS47/)。
HTML:
<div id="slider">
<div id="wrapper">
<div id="navigation"></div>
<div id="container">
<div id="button"></div>
</div>
</div>
</div>
CSS:
HTML,BODY
{ width:100%; height:100%; }
* { margin: 0; padding: 0; }
#slider
{
position: fixed;
top: 0;
bottom: 0px;
left: 100px;
overflow-y: auto;
background-color: red;
}
#wrapper
{
position: relative;
height: 100%;
background-color: #000000;
min-height:400px;
}
#navigation
{
display: inline-block;
width: 80px;
height: 100%;
background-color: #0000FF;
}
#container
{
display: inline-block;
height: 100%;
background-color: #00FF00;
}
#button
{
width: 22px; height: 100%;
float:right;
background-color: #CCFFCC;
cursor:pointer;
}
我想要做的是制作一个左侧导航栏,它跨越整个可见窗口高度,并且仅在其高度小于例如 400px 时才显示滚动条。由于一些调整大小的问题,该 div 的滚动条似乎始终可见(底部有一个额外的像素,我无法解释 [color:red])。
当滚动条可见时,Firefox 也会将第二个子元素移到第一个子元素的下方,因为滚动条似乎是内容区域的一部分,因此占用了大约 20px 的空间。如果将溢出:自动替换为溢出:滚动,则不会发生这种情况。
ATM 更改布局(特别是具有位置的容器:固定)不是一种选择。
不要介意绿色和蓝色框之间的空间。似乎是一个空白问题。