项目

卡片组件

ABP卡片组件是对Bootstrap卡片类的封装组件。 它支持Bootstrap卡片组件提供的所有功能。

ABP卡片组件包含三个主要组件:CardHeaderCardBodyCardFooter。这些组件都有自己的类和样式输入属性

组件 选择器 输入属性
CardHeader abp-card-header cardHeaderClass,cardHeaderStyle
CardBody abp-card-body cardBodyClass,cardBodyStyle
CardFooter abp-card-footer cardFooterClass,cardFooterStyle

除了这些组件外,卡片组件还提供了以下指令:CardHeaderCardTitleCardSubtitleCardImgTop

指令 选择器
CardHeader abp-card-header,[abp-card-header],[abpCardHeader]
CardTitle abp-card-title,[abp-card-title],[abpCardTitle]
CardSubtitle abp-card-subtitle,[abp-card-subtitle],[abpCardSubtitle]
CardImgTop abp-card-img-top,[abp-card-img-top],[abpCardImgTop]

使用方法

ABP卡片组件是 theme-shared 包的一部分。导入必要的组件后即可使用。请参考以下示例:

卡片主体

// card-demo.component.ts

import { Component } from '@angular/core';
import { CardComponent, CardBodyComponent } from '@abp/ng.theme.shared';

@Component({
  selector: 'app-card-demo',
  imports: [CardComponent, CardBodyComponent],
  template: ` 
    <abp-card [cardStyle]="{width: '18rem'}">
      <abp-card-body>这是卡片主体中的一些文本</abp-card-body>
    </abp-card> 
  `,
})
export class CardDemoComponent {}

查看卡片主体效果如下:

abp-card-body

标题、文本和链接


//card-demo.component.ts
import { Component } from '@angular/core';
import { 
  CardComponent,
  CardBodyComponent,
  CardTitleDirective,
  CardSubtitleDirective
} from '@abp/ng.theme.shared';

@Component({
  selector: 'app-card-demo',
  imports: [
    CardComponent,
    CardBodyComponent,
    CardTitleDirective,
    CardSubtitleDirective
  ],
  template: ` 
    <abp-card [cardStyle]="{width: '18rem'}">
      <abp-card-body>
        <h5 abpCardTitle>卡片标题</h5>
        <h6 abpCardSubtitle class="mb-2 text-muted">卡片副标题</h6>
        <p class="card-text">
          一些快速示例文本,用于构建卡片标题并构成卡片内容的主体。
        </p>
        [卡片链接](/docs/zh-Hans/abp-docs/master/framework/ui/angular/#)
        [另一个链接](/docs/zh-Hans/abp-docs/master/framework/ui/angular/#)
      </abp-card-body>
    </abp-card> 
  `,
})
export class CardDemoComponent {}

查看卡片标题、文本和链接效果如下:

abp-card-title-text-link

图片


//card-demo.component.ts
import { Component } from '@angular/core';
import { CardComponent, CardBodyComponent, CardImgTopDirective } from '@abp/ng.theme.shared';

@Component({
  selector: 'app-card-demo',
  imports: [CardComponent, CardBodyComponent, CardImgTopDirective],
  template: ` 
    <abp-card [cardStyle]="{width:'18rem'}">
      <img src="https://koudingke.oss-cn-hangzhou.aliyuncs.com/docs/abp-docs/zh-Hans/framework/ui/angular/..."/>
      <abp-card-body>
        <p class="card-text">
          一些快速示例文本,用于构建卡片标题并构成卡片内容的主体。
        </p>
      </abp-card-body>
    </abp-card>
  `,
})
export class CardDemoComponent {}

查看卡片图片效果如下:

abp-card-image-top

列表组


//card-demo.component.ts
import { Component } from '@angular/core';
import { CardComponent } from '@abp/ng.theme.shared';

@Component({
  selector: 'app-card-demo',
  imports: [CardComponent],
  template: ` 
    <abp-card [cardStyle]="{width:'18rem'}">
      <ul class="list-group list-group-flush">
        <li class="list-group-item">第一个项目</li>
        <li class="list-group-item">第二个项目</li>
        <li class="list-group-item">第三个项目</li>
      </ul>
    </abp-card>
  `,
})
export class CardDemoComponent {}

查看列表组效果如下:

abp-card-list-group

综合示例


//card-demo.component.ts
import { Component } from '@angular/core';
import { 
  CardComponent,
  CardBodyComponent,
  CardImgTopDirective,
  CardTitleDirective
} from '@abp/ng.theme.shared';

@Component({
  selector: 'app-card-demo',
  imports: [
    CardComponent,
    CardBodyComponent,
    CardImgTopDirective,
    CardTitleDirective
  ],
  template: ` 
    <abp-card [cardStyle]="{width:'18rem'}">
      <img src="https://koudingke.oss-cn-hangzhou.aliyuncs.com/docs/abp-docs/zh-Hans/framework/assets/thinh-nguyen-aRrS37GKlVA-unsplash.jpg"/>
      <abp-card-body>
        <h5 abpCardTitle>卡片标题</h5>
        <p class="card-text">
          一些快速示例文本,用于构建卡片标题并构成卡片内容的主体。
        </p>
      </abp-card-body>
      <ul class="list-group list-group-flush">
        <li class="list-group-item">第一个项目</li>
        <li class="list-group-item">第二个项目</li>
        <li class="list-group-item">第三个项目</li>
      </ul>
      <abp-card-body>
        [卡片链接](/docs/zh-Hans/abp-docs/master/framework/ui/angular/#)
        [另一个链接](/docs/zh-Hans/abp-docs/master/framework/ui/angular/#)
      </abp-card-body>
    </abp-card>
  `,
})
export class CardDemoComponent {}

查看综合示例效果如下:

abp-card-kitchen-sink

头部和底部


//card-demo.component.ts
import { Component } from '@angular/core';
import { 
  CardComponent,
  CardHeaderComponent,
  CardBodyComponent,
  CardTitleDirective,
  CardFooterComponent
} from '@abp/ng.theme.shared';

@Component({
  selector: 'app-card-demo',
  imports: [
    CardComponent,
    CardHeaderComponent,
    CardBodyComponent,
    CardTitleDirective,
    CardFooterComponent
  ],
  template: ` 
    <abp-card class="text-center">
      <abp-card-header>特色内容</abp-card-header>
      <abp-card-body>
        <h5 abpCardTitle>特殊标题处理</h5>
        <p class="card-text">
          下方带有支持文本,作为引导到额外内容的自然过渡。
        </p>
        [前往某处](/docs/zh-Hans/abp-docs/master/framework/ui/angular/#)
      </abp-card-body>
      <abp-card-footer class="text-muted">
        2天前
      </abp-card-footer>
    </abp-card>
  `,
})
export class CardDemoComponent {}

查看头部和底部效果如下:

abp-card-header-footer

在本文档中