离子页脚粘在离子内容和屏幕底部

Raf*_*icz 6 html css ionic2

我想制作离子页脚,高度取决于内容高度,就像那样

它应该如何工作

此外,页脚不能小于 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)

但它永远不会填满屏幕上的所有空白空间,我仍然有这样的:

这个怎么运作

Jay*_*Jay 5

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 。我希望这对您(虽然有点晚)和未来的读者有用。