Ionic popover:Popover 高度不适合内容

Ionic popover: Popover height doesn't fit to content

我想调整 ionic-popover 的高度以适应他的内容。我用这个弹出框来显示一些信息:它们只包含一个 ion-header 和一个 ion-content.

<ion-popover-view>
    <ion-header-bar>
        <h1 class="title">Title</h1>
    </ion-header-bar>
    <ion-content scroll="false" class="padding">
        I want the parent's height to fit the content's height
    </ion-content>
</ion-popover-view>

但是弹出框对于我想显示的几个文本来说太大了:

我试图用 height: auto; 设置 ion-popover-view 高度,但在这种情况下只显示 header-bar。设置固定高度 (height: 100px;) 有效(如所述 here),但我想要一个取决于内容长度的动态高度。

An example on CodePen

弹出窗口如此之大的原因是 Ionic CSS 文件定义了以下内容(以及其他属性):

.popover {
   height: 280px;
}

再加上 <ion-header-bar><ion-content> 都是绝对定位元素,这意味着如果您想要自己的动态高度,您可能不得不修改默认样式这些元素,或者您可以从头开始设计自己的弹出窗口。

修改默认值非常简单:

.popover {
    height: auto !important;
}
.popover ion-header-bar {
    position: relative;
}
.popover ion-content {
    top: 0;
    position: relative;
}

最好使用您自己的 类 来覆盖值而不是默认值,这样您就不会搞砸其他任何事情。但这应该给你一个好的开始。您可以从那里添加填充和其他内容。

Working CodePen

除了之前的答案,还可以考虑使用以下样式

.platform-ios  {
  .popover-arrow {
    right: 0px;
  }
  div.list {
    a.item:first-child{
      border-top-left-radius: 10px;
      border-top-right-radius: 10px;
    }
    a.item:last-child{
      border-bottom-left-radius: 10px;
      border-bottom-right-radius:10px;
    }
  }
}