web-dev-qa-db-ja.com

Angular素材2カードスクロール可能

マットカード素材2コンポーネント内のコンテンツをスクロール可能にする方法マテリアル2のWebサイトで何も見つかりませんでした

7
ankur ratra

これは組み込みの機能ではありません。コンテンツをスクロール可能にするには、<mat-card-content>セレクターの高さを設定します。次に例を示します。

<mat-card>
    <mat-card-header>
        <mat-card-title>CARD TITLE</mat-card-title>
    </mat-card-header>
    <mat-card-content [style.overflow]="'auto'" [style.height.px]="'300'">
        <p>
            The Shiba Inu is the smallest of the six original and distinct
            spitz breeds of dog from Japan. A small, agile dog that copes very
            well with mountainous terrain, the Shiba Inu was originally bred
            for hunting.
        </p>
    </mat-card-content>
    <mat-card-actions>
        <button mat-button>LIKE</button>
        <button mat-button>SHARE</button>
    </mat-card-actions>
</mat-card>

StackBlitz demo へのリンク。

8
Faisal

これを達成するためにFlexbox=を活用できます:

クラスを追加scrollable-contentあなたのmat-cardコンテンツがカードを埋めるようにします。

.mat-card.scrollable-content {
  overflow: hidden;
  display: flex;
  flex-direction: column;

  > .mat-card-title-group {
    display: block;
  }

  > .mat-card-content {
    overflow-y: auto;
  }
}
<mat-card class="scrollable-content">
  <!-- the rest of your inner html -->
</mat-card>
5
j2L4e

これが私自身のコードで行ったことです。

同様のアプローチに従うことができますが、機能します。

.css

:Host {
  width: 100%;
  height: 100%;
}

.container {
  width: 100%;
  height: 100%;
}

.content {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  align-content: center;
}
.policy-card {
  width: 80%;
  min-width: 280px;
  height: 70%;
  min-height: 280px;
  margin: auto;
  font-weight: unset !important;
  box-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.35);
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  justify-content: center;
  align-content: center;
}
.header-image {
  background-color: #44c2cc;
}
.text-container {
  overflow-y: scroll;
}

.html

<mat-sidenav-container class="container">
<mat-sidenav-content class="content">

<mat-card class="policy-card">
  <mat-card-header>
    <div mat-card-avatar class="header-image"></div>
    <mat-card-title>Title</mat-card-title>
    <mat-card-subtitle>Subtitle</mat-card-subtitle>
  </mat-card-header>
  <mat-card-actions>
    <button mat-button>LIKE</button>
    <button mat-button>SHARE</button>
  </mat-card-actions>
  <mat-card-content [style.overflow]="'auto'">
    <p>
        The Shiba Inu is the smallest of the six original and distinct
        spitz breeds of dog from Japan. A small, agile dog that copes very
        well with mountainous terrain, the Shiba Inu was originally bred
        for hunting.
    </p>
  </mat-card-content>
</mat-card>
1
Michael Nelms

これを試して。キーポイントは、スクロール可能なdivでposition:absoluteを設定することです。

.flex {
   flex: 1 1 auto;
}    

.scrollable {
    overflow: auto;
    box-sizing: border-box;
    position: absolute;
    right: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

<mat-card class="flex">
   <div class="scrollable">
       ...
   </div>
</mat-card>
0
Gerard Carbó