ant design Card组件了解

ant design card文档

示例1

  • 需求:用组件card,用react实现其cover固定大小并自适应。并实现一行6个card,超过自动换行。

  • 代码

    import { Card } from 'antd';
    
    const cards = [
      { title: "Card 1", content: "This is card 1" },
      { title: "Card 2", content: "This is card 2" },
      { title: "Card 3", content: "This is card 3" },
      { title: "Card 4", content: "This is card 4" },
      { title: "Card 5", content: "This is card 5" },
      { title: "Card 6", content: "This is card 6" },
      { title: "Card 7", content: "This is card 7" },
      { title: "Card 8", content: "This is card 8" },
    ];
    
    function App() {
      return (
        <div style={{ display: "flex", flexWrap: "wrap" }}>
          {cards.map((card) => (
            <Card
              key={card.title}
              title={card.title}
              style={{ flex: "1 0 calc(100% / 6)", margin: "10px" }}
            >
              {card.content}
            </Card>
          ))}
        </div>
      );
    }
    

    在上面的代码中,我们使用 display: flexflex-wrap: wrap 来让卡片自动换行。然后我们将每一个卡片的宽度设置为 calc(100% / 6),这样每一行就可以显示六个卡片了。

    您还需要将卡片的外边距设置为适当的值,以便它们在页面上看起来更加美观。

示例2,带cover

import { Card } from 'antd';
import React, { useState } from 'react';

const coverStyle = {
  height: '150px',
  width: '100%',
  objectFit: 'cover',
};

const cardStyle = {
  width: '200px',
  margin: '10px',
};

const testData = [
  {
    title: 'Card Title 1',
    cover: 'http://xxx.jpg',
  },
  {
    title: 'Card Title 2',
    cover: 'http://xxx.jpg',
  },
  {
    title: 'Card Title 3',
    cover: 'http://xxx.jpg',
  },
  // add more data here...
];

function CardList() {
  const [data, setData] = useState(testData);

  return (
    <div style={{ display: 'flex', flexWrap: 'wrap' }}>
      {data.map((cardData, index) => (
        <Card
          key={index}
          hoverable
          style={cardStyle}
          cover={<img alt="cover" src={cardData.cover} style={coverStyle} />}
        >
          <Card.Meta title={cardData.title} />
        </Card>
      ))}
    </div>
  );
}

export default CardList;

flex回忆

flex 是 CSS3 中用来定义弹性盒子模型的属性。它是一个缩写,包含了三个子属性:flex-growflex-shrinkflex-basis

在这里,flex: "1 0 calc(100% / 6)" 表示:

  • flex-grow: 1:表示当有剩余空间时,卡片可以根据比例放大以填充父容器。
  • flex-shrink: 0:表示当空间不足时,卡片不会缩小,保持原始大小。
  • flex-basis: calc(100% / 6):表示卡片的初始宽度为父容器宽度的 1/6。

这样设置之后,每行就可以显示六个等宽的卡片,并且当窗口尺寸改变时,卡片的宽度也相应地进行调整。

flex-wrap: wrap:当一行放不下时,会自动换行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值