我实际上有两个问题,但让我们先解决主要问题,因为我相信另一个问题更容易解决。
我有一个固定的位置div滚动左侧的菜单。右边是一个标准的div滚动适当。问题是,当浏览器的视图端口太小,看不到整个菜单..没有办法让它滚动,我可以找到(至少不是与css)。我尝试在css中使用不同的溢出,但没有使div滚动。包含菜单的div被设置为min-height:100%和position:fixed..这两个属性我都需要保留。
包含菜单的div位于另一个包装器div中,该包装器div的位置绝对,高度设置为100%。
如果内容对于div来说太高,我如何让它垂直滚动?
这导致我到另一个问题,我不希望滚动条显示..但我想我可能已经有了一个答案(只是它还不工作,因为我不能让div滚动开始)。
有解决方案吗?也许需要javascript ?(对此我知之甚少)
JS小提琴示例
以及导致这个问题的相关代码(因为在这里发布整个事情太长了):
.fixed-content {
min-height:100%;
position:fixed;
overflow-y:scroll;
overflow-x:hidden;
}
我还试过增加高度:100%也是为了看看这是不是一个问题,但也没有效果……也没有固定的高度,比如600px。
这里有两个修复。
首先,关于固定的边栏,你需要给它一个高度,让它溢出:
HTML代码:
<div id="sidebar">Menu</div>
<div id="content">Text</div>
CSS代码:
body {font:76%/150% Arial, Helvetica, sans-serif; color:#666; width:100%; height:100%;}
#sidebar {position:fixed; top:0; left:0; width:20%; height:100%; background:#EEE; overflow:auto;}
#content {width:80%; padding-left:20%;}
@media screen and (max-height:200px){
#sidebar {color:blue; font-size:50%;}
}
生活例子:
http://jsfiddle.net/RWxGX/3/
如果你的内容超出了div的高度,不可能不得到滚动条。这就是为什么我为屏幕高度添加了一个媒体查询。也许你可以为短屏幕尺寸调整样式,这样就不需要出现滚动条了。
干杯
伊格纳西奥
一般来说,固定的部分应该设置宽度,高度和顶部,底部属性,否则它将无法识别其大小和位置。
如果所使用的框是body的直接子框,并且有邻居,那么检查z-index和top, left属性是有意义的,因为它们可能会相互重叠,这可能会影响您在滚动内容时的鼠标悬停。
下面是内容框(body标签的直接子)的解决方案,它通常与移动导航一起使用。
.fixed-content {
position: fixed;
top: 0;
bottom:0;
width: 100vw; /* viewport width */
height: 100vh; /* viewport height */
overflow-y: scroll;
overflow-x: hidden;
}
希望能对大家有所帮助。谢谢你!