【发布时间】:2018-03-14 19:12:53
【问题描述】:
我在一个 HTML 页面上有 2 个 div 元素。第一个 div 应该是顶部标题部分(固定),它下面的一个是可滚动的内容 div。
标题部分使用固定位置,不滚动。但是,当我滚动第二个 div 时,它最终会向上移动到其上方的 div 后面。
有没有办法防止这种情况,使第二个 div 不会向上滚动到其初始顶部位置上方?
此外,滚动条本身具有整个页面(包括顶部)的高度。有没有办法将滚动条限制为第二个 div 元素。
我尝试了几种排列方式,包括此页面上引用的答案:Scrolling only content div, others should be fixed
HTML 代码(片段):
.Toolbar {
height: 40px;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: #40A4C8;
padding: 0 20px;
z-index: 90;
}
.Layout {
top: 42px;
position: absolute;
width: 100%;
overflow: auto;
background-color: orange;
}
.Items {
}
.Items li {
width: 80%;
border: 1px solid #eee;
box-shadow: 0 2px 3px #ccc;
padding: 10px;
margin: 10px auto;
box-sizing: border-box;
list-style-type: none;
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<div>
<header class="Toolbar">
</header>
<main class="Layout">
<div class="Items">
<ul>
<li><p>Item A</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
<li><p>Item B</p></li>
</ul>
</div>
</main>
</div> </body>
</html>
【问题讨论】: