在我的网站上,我有两个大(100% x 100%)的 div 垂直堆叠在一个页面上。每个 div 里面都有几个部分,每个部分都有一个锚点。我在左侧有两个浮动侧边栏(一次只能看到一个),其中包含适合每个锚点的链接。第一个边栏包含 DivOne 的链接,第二个边栏包含 DivTwo 的链接。每个侧边栏中还有一个链接,可以“交换”侧边栏和 div。侧边栏看起来像:
<div id="SidebarOne">
<a href="#DivTwo">second screen</a>
<a href="#OneSectionOne">Section One</a>
<a href="#OneSectionTwo">Section Two</a>
<a href="#OneSectionThree">Section Three</a>
</div>
我已将 CSS 和 HTML 简化为我认为相关的基础知识。这是CSS:
#DivOne {
top:0%;
left:0%;
}
#DivTwo {
top:100%;
left:0%;
}
#DivOne, #DivTwo {
width:100%;
height:100%;
overflow:hidden;
position: absolute;
display: block;
}
#Container {
left: 50px;
top: 0px;
height: 500px;
width: 500px;
overflow: auto;
position: relative;
}
和 HTML:
<a id="DivOne"><div id="DivOne"></a>
<div id="Container">
<a id="OneSectionOne">Title One</a>
<p>Content</p>
<a id="OneSectionTwo">Title Two</a>
<p>Content</p>
<a id="OneSectionThree">Title Three</a>
<p>Content</p>
</div>
</div>
<a id="DivTwo"><div id="DivTwo"></a>
<div id="Container">
<a id="TwoSectionOne">Title One</a>
<p>Content</p>
<a id="TwoSectionTwo">Title Two</a>
<p>Content</p>
<a id="TwoSectionThree">Title Three</a>
<p>Content</p>
<div>
</div>
每个 div 为 100% x 100%,DivTwo 位于顶部:100%;
我遇到的问题是,当我单击侧边栏中的链接时,它会向上移动整个页面,使锚点位于页面顶部。我希望它只将“容器”div 滚动到适当的位置,而不是整个页面。它似乎在底部 div (DivTwo) 上工作,但我很确定这只是因为它位于页面底部,并且无法进一步滚动。我试过给 div 一个“位置:固定;” 但这失去了交换的能力。我也考虑过水平对齐 div,但不能很好地解决它。
这是我在哪里可以看到问题的演示。当您单击第一部分中的链接时,整个容器会向上移动,显示背景较浅的部分。
那么,我怎样才能只滚动“容器”div 而不是整个页面呢?
提前致谢!
- - - - - -编辑 - - - - - - -
我找到了答案:
基本上,我只需要移动第二个 div,所以现在它在 left:100%;
#DivOne {
top: 0%;
left: 100%;
}
因为它们都位于屏幕底部,所以没有任何东西可以滚动和显示。有点粗略的修复,但它似乎奏效了!
不过感谢所有帮助过的人!