我有一个div放置fixed在网页的左侧,包含它的菜单和导航链接。它没有从CSS设置高度,内容由高度决定,宽度固定。问题是,如果内容太多,div则将大于窗口的高度,部分内容将不可见。(滚动窗口无济于事,因为位置在fixed,因此div不会滚动。)
我试图进行设置,overflow-y:auto;但这也无济于事,div似乎没有注意到它的一部分在窗口之外。
如果div挂在窗外,如何才能仅使内容滚动(如果需要)?
我有一个div放置fixed在网页的左侧,包含它的菜单和导航链接。它没有从CSS设置高度,内容由高度决定,宽度固定。问题是,如果内容太多,div则将大于窗口的高度,部分内容将不可见。(滚动窗口无济于事,因为位置在fixed,因此div不会滚动。)
我试图进行设置,overflow-y:auto;但这也无济于事,div似乎没有注意到它的一部分在窗口之外。
如果div挂在窗外,如何才能仅使内容滚动(如果需要)?
Answers:
你可能不会。这很接近。如果下方有空间,您将不会得到周围流动的内容。
http://jsfiddle.net/ThnLk/1289
.stuck {
    position: fixed;
    top: 10px;
    left: 10px;
    bottom: 10px;
    width: 180px;
    overflow-y: scroll;
}
您也可以执行百分比高度:
http://jsfiddle.net/ThnLk/1287/
.stuck {
    max-height: 100%;
}
下面的链接将演示我是如何做到这一点的。不是很难-只需使用一些聪明的前端开发者即可!!
<div style="position: fixed; bottom: 0%; top: 0%;">
    <div style="overflow-y: scroll; height: 100%;">
       Menu HTML goes in here
    </div>
</div>
position: fixed; bottom: 0%; top: 0%; overflow: scroll; height: 100vh;将使外部div可基于内容滚动。
                    您可能需要一个内部div。用css是:
.fixed {
   position: fixed;
   top: 0;
   left: 0;
   bottom: 0;
   overflow-y: auto;
   width: 200px; // your value
}
.inner {
   min-height: 100%;
}
这是纯HTML和CSS解决方案。
我们为导航栏创建一个容器框,其位置为:fixed; 高度:100%;
然后,我们创建一个高度为100%的内部框;溢出y:滚动;
接下来,我们将内容放入该框内。
这是代码:
.nav-box{
        position: fixed;
        border: 1px solid #0a2b1d;
        height:100%;
   }
   .inner-box{
        width: 200px;
        height: 100%;
        overflow-y: scroll;
        border: 1px solid #0A246A;
    }
    .tabs{
        border: 3px solid chartreuse;
        color:darkred;
    }
    .content-box p{
      height:50px;
      text-align:center;
    }<div class="nav-box">
  <div class="inner-box">
    <div class="tabs"><p>Navbar content Start</p></div>
    <div class="tabs"><p>Navbar content</p></div>
    <div class="tabs"><p>Navbar content</p></div>
    <div class="tabs"><p>Navbar content</p></div>
    <div class="tabs"><p>Navbar content</p></div>
    <div class="tabs"><p>Navbar content</p></div>
    <div class="tabs"><p>Navbar content</p></div>
    <div class="tabs"><p>Navbar content</p></div>
    <div class="tabs"><p>Navbar content</p></div>
    <div class="tabs"><p>Navbar content</p></div>
    <div class="tabs"><p>Navbar content</p></div>
    <div class="tabs"><p>Navbar content End</p></div>
    </div>
</div>
<div class="content-box">
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
  <p>Lorem Ipsum</p>
</div>我将其作为解决方法而不是解决方案。这可能并非始终有效。我这样做是因为我在一个非常奇怪的环境中做一个非常基本的HTML页面,供内部使用。我知道有些像MaterializeCSS这样的库可以做非常好的导航栏。(我打算使用它们,但是它不适用于我的环境。)
<div id="nav" style="position:fixed;float:left;overflow-y:hidden;width:10%;"></div>
<div style="margin-left:10%;float:left;overflow-y:auto;width:60%;word-break:break-all;word-wrap:break-word;" id="content"></div>