我想制作离子页脚,高度取决于内容高度,就像那样
此外,页脚不能小于 2 图像(最小高度)。
内容是动态生成的(ion-list *ngFor)。这是我当前的伪代码
<ion-header>
<ion-navbar>
<ion-title>
Title
</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-list>
<button ion-item *ngFor="let item of items">
{{ item.name}}
</button>
</ion-list>
</ion-content>
<ion-footer class="footer">
</ion-footer>
Run Code Online (Sandbox Code Playgroud)
CSS:
.footer{
background-color: blue;
min-height: 10em;
height: auto;
}
Run Code Online (Sandbox Code Playgroud)
但它永远不会填满屏幕上的所有空白空间,我仍然有这样的:
ion-footer 方法在这里不起作用,因为 ion-footer CSS 样式具有绝对定位。这意味着它的高度不能相对于离子含量的高度。
所需的布局可以通过使用 flex 的不同方法来实现。
<ion-content >
<div style=" display: flex;flex-direction: column;height: 100%;">
<ion-list padding-horizontal padding-top style="overflow-y: scroll;max-height: 90%;">
<button ion-item *ngFor="let item of items">
{{ item.name}}
</button>
</ion-list>
<div style="flex: 1;background-color: blue;">Footer</div>
</div>
</ion-content>
Run Code Online (Sandbox Code Playgroud)
从 HTML 中删除 ion-footer 元素。这应该给出类似的布局。
小智 5
我想提出另一种方法,“更多离子方式”,使用它自己的组件而不是 div 一些样式规则。
Jay的解决方案通过CSS解决了这个问题,将粘性页脚固定在内容的底部。但是,我已将组件移出 ,因此,它将始终保留在页面底部:
<ion-content>
// Page content
</ion-content>
<ion-footer>
// Footer content
</ion-footer>
Run Code Online (Sandbox Code Playgroud)
要查看在线示例,我在这里创建了一个 StackBlitz 。我希望这对您(虽然有点晚)和未来的读者有用。