我有一些在标题上方滑动的部分。
但是我需要最后一部分来揭示页脚。
在这种情况下可以不用JavaScript来显示页脚吗?
html,
body,
* {
padding: 0;
margin: 0;
}
html,
body {
width: 100%;
height: 100%;
}
.container {
height: 100%;
margin-top: 300px;
margin-bottom: 300px;
}
.header {
height: 100vh;
background: tomato;
position: fixed;
width: 100%;
z-index: 1;
top: 0;
}
.section1,
.section2,
.section3 {
height: 100vh;
z-index: 10;
position: relative;
}
.section1 {
background: orange;
}
.section2 {
background: purple;
}
.section3 {
background: red;
}
.footer {
height: 10vh;
position: fixed;
bottom: 0;
width: 100%;
background: aquamarine;
}
<div class="container">
<div class="header">
header
</div>
<div class="section1">
section 1
</div>
<div class="section2">
section 2
</div>
<div class="section3">
section 3
</div>
</div>
<div class="footer">
footer
</div>
答案 0 :(得分:1)
页脚不显示的原因是,它的z索引比其他部分的索引低。但是,如果您为.footer
类提供比其他部分更高的z-index,则它始终显示在底部,因为它的样式为position: fixed
。
一种可能的解决方案是为页脚提供与其他节相同的z-index,将其位置更改为relative
,并将其包含在.container
类中。
这看起来像:
html,
body,
* {
padding: 0;
margin: 0;
}
html,
body {
width: 100%;
height: 100%;
}
.container {
height: 100%;
margin-top: 300px;
margin-bottom: 300px;
}
.header {
height: 100vh;
background: tomato;
position: fixed;
width: 100%;
z-index: 1;
top: 0;
}
.section1,
.section2,
.section3,
.footer {
height: 100vh;
z-index: 10;
position: relative;
}
.section1 {
background: orange;
}
.section2 {
background: purple;
}
.section3 {
background: red;
}
.footer {
height: 10vh;
position: relative;
bottom: 0;
width: 100%;
background: aquamarine;
}
<div class="container">
<div class="header">
header
</div>
<div class="section1">
section 1
</div>
<div class="section2">
section 2
</div>
<div class="section3">
section 3
</div>
<div class="footer">
footer
</div>
</div>
答案 1 :(得分:0)
尝试放置:
z-index: 11;
因为在另一个容器中有z-index,这就是为什么看不到页脚的原因
答案 2 :(得分:0)
您可以考虑使用position:sticky
。
粘性定位元素是其计算位置的元素 价值是粘性的。直到它被定位为相对位置 包含块超过了指定的阈值(例如将top设置为 在其流根(或其容器)中的值(不是auto) 在其中滚动),这时它被视为“卡住”,直到见面为止 其包含块的相对边缘。
但是,考虑使用browser compatibility。
在撰写本文时,IE不支持“粘性”定位。
这是一个示范:
body {
margin: 0;
}
.header {
position:-webkit-sticky;
position: sticky;
background: tomato;
height: 100vh;
top: 0;
}
.section1,
.section2,
.section3 {
height: 100vh;
position: relative;
}
.section1 {
background: orange;
}
.section2 {
background: purple;
}
.section3 {
background: red;
}
.footer {
position:relative;
height: 10vh;
background: aquamarine;
}
<div class="header">
header
</div>
<div class="section1">
section 1
</div>
<div class="section2">
section 2
</div>
<div class="section3">
section 3
</div>
<div class="footer">
footer
</div>