html - 滚动溢出的侧边栏而不是后面的页面
问题描述
我想要实现的是在侧边栏向下滚动时固定背景页面。这两个元素对于页面来说都太大了。通常页面滚动,但当导航栏打开并溢出页面高度时,它应该开始可滚动。看看这里:
https://jsfiddle.net/tpL92b01/2/
灰色 div 应该是可滚动的。
用于演示的侧边栏不会像通常那样显示和隐藏。
body, p, ul {
margin: 0;
padding: 0;
overflow: hidden;
}
p{
padding: 30px;
text-align: center;
border: 1px solid blue;
}
.main-content {
background-color: lightblue;
}
.sidebar {
position: fixed;
top: 0;
left: 0;
width: 200px;
}
.sidebar ul {
background-color: lightgrey;
}
.sidebar li {
padding: 15px;
}
<html>
<body>
<div class="main-content">
<p>Some content</p>
<p>Some content</p>
<p>Some content</p>
<p>Some content</p>
<p>Some content</p>
</div>
<div class="sidebar">
<ul>
<li>Menu item1</li>
<li>Menu item2</li>
<li>Menu item3</li>
<li>Menu item4</li>
<li>Menu item5</li>
<li>Menu item6</li>
<li>Menu item7</li>
<li>Menu item8</li>
<li>Menu item9</li>
</ul>
</div>
</body>
</html>
解决方案
尝试将 max-height 和 overflow:auto 添加到侧边栏,这样它只会在需要时滚动。
body, p, ul {
margin: 0;
padding: 0;
overflow: hidden;
}
p{
padding: 30px;
text-align: center;
border: 1px solid blue;
}
.main-content {
background-color: lightblue;
}
.sidebar {
position: fixed;
top: 0;
left: 0;
width: 200px;
max-height: 100%;
overflow: auto;
}
.sidebar ul {
background-color: lightgrey;
}
.sidebar li {
padding: 15px;
}
<html>
<body>
<div class="main-content">
<p>Some content</p>
<p>Some content</p>
<p>Some content</p>
<p>Some content</p>
<p>Some content</p>
</div>
<div class="sidebar">
<ul>
<li>Menu item1</li>
<li>Menu item2</li>
<li>Menu item3</li>
<li>Menu item4</li>
<li>Menu item5</li>
<li>Menu item6</li>
<li>Menu item7</li>
<li>Menu item8</li>
<li>Menu item9</li>
</ul>
</div>
</body>
</html>
推荐阅读
- excel - 我正在尝试使用 xlrd 检测 excel (.xlsx) 文件中单元格背景的颜色,但我似乎无法成功
- git - 如何在 gitignore 中选择多个相同格式的文件,但特定名称除外
- ruby-on-rails - Rails ajax 调用路由到错误的控制器操作
- html - 2 个 div 相互对齐并在视口中居中停止在较小的视口中对齐
- typescript - 是否建议发布 TypeScript 节点模块的源文件?
- python - TF2.0 Data API 从每个类标签中获取 n_i 个样本
- ubuntu - 有没有办法恢复崩溃的 Choregraphe 项目?
- function - 根据周开始和周结束日期生成周历
- python - 在函数/循环问题中更新访问令牌(全局变量)
- rest - 联系特定的云控制器 API