我不知道是否仅通过CSS可以实现在一个相对元素下有一个绝对底部,因为相对元素由于其性质(内容的更改或响应性)高度可能会不同。我的HTML(使用Angular 5):
<main>
<app-navbar></app-navbar>
<div class="content-container" [@fadeAnimation]="routeTransition(outlet)">
<router-outlet #outlet="outlet"></router-outlet>
</div>
<app-footer></app-footer>
</main>
我想这么做的原因是相对元素包含用户视图,而我正在使用Angular动画,这些动画需要被显示的元素以绝对定位方式呈现才能得到所需的可视化效果。
问题在于,对于大型元素,我会遇到问题,因为页脚也是绝对定位的,如果这样说的话,它会重叠实际内容。
我希望在页面底部有一个“粘性页脚”,以便它具有绝对配置等(app-footer将渲染页脚):
footer{
position: absolute;
right: 0;
bottom: 0;
left: 0;
width: 100%;
padding: 1rem;
}
我的 CSS:
main{
padding-top: 10px;
padding-bottom: 100px;
}
.content-container{
position: relative;
}
/deep/ router-outlet~* {
position: absolute;
width: 100%;
height: 100%;
}
在我给 .content-container
添加 relative
属性以使内部元素可以绝对定位之前,一切都正常。
我找到了一个可能的解决方法,即给 .content-container
类添加固定高度,并针对不同的分辨率进行调整,以便将页脚推下来。但我认为这可能不是最好的方法。我正在使用 Angular 4,如果有帮助的话。我也看过 如何在相对定位元素下方定位元素而不重叠?,但建议的解决方案仍然与硬编码高度有关。
更新1: 我已经更新了问题并提供了更详细的信息。希望现在更清楚了。
更新2: Plunker:https://plnkr.co/edit/FHhncrGBcO9jaNRiUfJQ?p=preview