几乎我已经拥有了我想要的东西.在overflow-y我希望能够通过滚动,如果它熄灭在div#滚动屏幕内,但一旦溢出是有它不会一路向下滚动到选项8离开它不可见.为什么会如此,我该如何解决?
* {
margin: 0;
padding: 0;
}
#fixed {
width: 300px;
height: 100%;
max-height: 345px;
position: fixed;
background: #333;
border: 2px solid #333;
}
#menu {
background: pink;
line-height: 25px;
padding-left: 20px;
}
#scrollable {
position: absolute;
height: 100%;
width: 100%;
overflow-y: auto;
}
ul {
list-style: none;
}
ul li a {
color: white;
line-height: 40px;
padding-left: 20px;
display: block;
}
ul li a:hover {
background: blue;
}Run Code Online (Sandbox Code Playgroud)
<div id="fixed">
<div id="menu">
Hello
</div>
<div id="scrollable">
<ul>
<li><a>Option 1</a></li>
<li><a>Option 2</a></li>
<li><a>Option 3</a></li>
<li><a>Option 4</a></li>
<li><a>Option 5</a></li>
<li><a>Option 6</a></li>
<li><a>Option 7</a></li>
<li><a>Option 8</a></li>
</ul>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
你需要计算#scrollablediv 的高度,calc()因为在这个菜单中也占用了一些空间,这样就#scrollable不会得到div的100%高度.
height: calc(100% - 30px);
* {
margin: 0;
padding: 0;
}
#fixed {
width: 300px;
height: 100%;
max-height: 345px;
position: fixed;
background: #333;
border: 2px solid #333;
}
#menu {
background: pink;
line-height: 25px;
padding-left: 20px;
}
#scrollable {
position: absolute;
height: calc(100% - 30px);
width: 100%;
overflow-y: auto;
}
ul {
list-style: none;
}
ul li a {
color: white;
line-height: 40px;
padding-left: 20px;
display: block;
}
ul li a:hover {
background: blue;
}Run Code Online (Sandbox Code Playgroud)
<div id="fixed">
<div id="menu">
Hello
</div>
<div id="scrollable">
<ul>
<li><a>Option 1</a></li>
<li><a>Option 2</a></li>
<li><a>Option 3</a></li>
<li><a>Option 4</a></li>
<li><a>Option 5</a></li>
<li><a>Option 6</a></li>
<li><a>Option 7</a></li>
<li><a>Option 8</a></li>
</ul>
</div>
</div>Run Code Online (Sandbox Code Playgroud)