如何在不设置父级高度的情况下滚动离子卡内容

pre*_*red 2 css scroll ionic-framework angular ionic4

我在 ionic 4 和 angular 7 中遇到滚动问题。

我有以下结构:

<ion-grid>
    <ion-row>
      <ion-col>
       <ion-card>
        <ion-card-header>
         <!-- some content -->
        </ion-card-header>
        <ion-card-content>
         <ion-list>
          <!-- some ion-item -->
         </ion-list>
        </ion-card-content>
       </ion-card>
      </ion-col>

      <ion-col>
      </ion-col>
    </ion-row>
</ion-grid>
Run Code Online (Sandbox Code Playgroud)

我使用ion-card-content以下 scss 代码在我的上滚动:

ion-card-content {
  max-height: calc(100% - #{50px});
  position: relative;
  overflow: hidden;
  overflow-y: auto;
  ::-webkit-scrollbar {
    display: none;
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我在我的离子卡上应用以下 scss 代码,滚动将不起作用:

ion-card {
  max-height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

如果我在我的 ion-card 上应用以下 scss 代码,滚动可以工作,但 ion-card 的大小仍然相同,当我的 ion-list 中没有 ion-item 时,它会占用所有屏幕:

ion-card {
  height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

你知道有什么方法可以执行滚动并保持根据离子列表大小调整大小的高度吗?

pre*_*red 5

我通过在我的 ion-card 上设置以下 css 代码解决了这个问题:

ion-card {
  max-height: 100%;
  display: flex;
  flex-direction: column;
}
Run Code Online (Sandbox Code Playgroud)

我还删除了 ion-card-content 元素,并在 ion-list 上应用了以下 css 代码:

ion-list {
  overflow: hidden;
  overflow-y: auto;
  ::-webkit-scrollbar {
    display: none;
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 只是想添加以供将来参考,一般来说,如果您只想在 ion-card-content 内滚动,请添加溢出:scroll; 在 ion-card-content 元素 css 上(除了显示:flex;flex-direction:column;在 ion-card 上)有效。 (2认同)