我有两个divs
水平叠加在一起。
每个div
占据视口的100%。
.section{
width:100%;
height:100%;
}
在每个div
中,有一个锚到另一个div。
<div class="first section ">
<a name="first-section"> </a>
<p>Click <a href="#second-section">here</a> to go to the second section</p>
</div>
<div class="second section">
<p>Click <a href="#first-section">here</a> to go to the first section</p>
</div>
<a name="second-section"> </a>
我的目标是每次只显示一个div
的内容。但是当第二部分div
上有人并调整页面大小时,会在页面调整为初始大小时显示两个divs
。
如何在页面调整大小时避免向上滚动?
我有body{overflow:hidden;}
。感谢。
答案 0 :(得分:2)
您可以将div设置为position:fixed
,因此它始终相对于视口。然后默认隐藏除第一个之外的所有div,并在:target
上显示该div。
<强> jsFiddle example 强>
html, body { height: 100%; }
body { margin: 0; }
.section {
width: 100%;
height: 100%;
position: fixed;
}
.section:target {
visibility: visible;
}
.first {
background: lightblue;
}
.second {
background: lightgreen;
visibility: hidden;
}
<div class="first section" id="first-section">
<p>Click <a href="#second-section">here</a> to go to the second section</p>
</div>
<div class="second section" id="second-section">
<p>Click <a href="#first-section">here</a> to go to the first section</p>
</div>
或者,使用z-index
使用不同的值,并将div移至:target
上的顶部。
<强> jsFiddle example 强>
html, body { height: 100%; }
body { margin: 0; }
.section {
width: 100%;
height: 100%;
position: fixed;
}
.section:target {
z-index: 3;
}
.first {
background: lightblue;
z-index: 2;
}
.second {
background: lightgreen;
z-index: 1;
}
<div class="first section" id="first-section">
<p>Click <a href="#second-section">here</a> to go to the second section</p>
</div>
<div class="second section" id="second-section">
<p>Click <a href="#first-section">here</a> to go to the first section</p>
</div>
注意,这两种方法都要求每个div都有一个固定的背景定义。