Badge 徽标数

定义/Definition

图标右上角的圆形徽标数字。一般出现在通知图标或头像的右上角,用于显示需要处理的消息条数,通过醒目视觉形式吸引用户处理。

规则 / Rule

  • 展示的数字,根据业务需求设定最大值,例如:大于 99 时展示封顶数字值为 99+。

  • 展示数字为0时,徽标数隐藏。

  • 中间元素可以是数字/字母/汉字,保证两边到边框距离为8px。

代码演示

基本

简单的徽章展示。

  1. import { Badge } from 'antd-mobile';
  2. ReactDOM.render(
  3. <div className="badge-container" style={{ padding: '40px 16px' }}>
  4. <Badge text={9}>
  5. <span className="head-example"></span>
  6. </Badge>
  7. <Badge text={'new'}>
  8. <span className="head-example"></span>
  9. </Badge>
  10. </div>
  11. , mountNode);
  1. .am-badge {
  2. margin-right: 8px;
  3. }

讨嫌的小红点

只有个讨嫌的小红点,没有具体数字

  1. import { Badge } from 'antd-mobile';
  2. ReactDOM.render(
  3. <div className="badge-container" style={{ padding: '40px 16px' }}>
  4. <Badge dot>
  5. <a href="#">一个链接</a>
  6. </Badge>
  7. <Badge dot size="large">
  8. <span className="head-example"></span>
  9. </Badge>
  10. </div>
  11. , mountNode);
  1. .am-badge {
  2. margin-right: 8px;
  3. }

角标

像丝带一样的角标

  1. import { Badge } from 'antd-mobile';
  2. ReactDOM.render(
  3. <div className="badge-container" style={{ padding: '40px 16px' }}>
  4. <Badge text={'new'} corner>
  5. <span className="head-example"></span>
  6. </Badge>
  7. <Badge text={'限时优惠'} corner size="large">
  8. <span className="head-example head-example-l"></span>
  9. </Badge>
  10. </div>
  11. , mountNode);
  1. .head-example {
  2. width: 52px;
  3. height: 52px;
  4. background: rgba(255, 140, 101, 0.15);
  5. display: inline-block;
  6. }
  7. .am-badge {
  8. margin-right: 8px;
  9. }
  10. .head-example-l {
  11. width: 72px;
  12. height: 72px;
  13. }

大数字

数字大于99,会显示 99+
  1. import { Badge } from 'antd-mobile';ReactDOM.render( <div className="badge-container" style={{ padding: '40px 16px' }}> <Badge text={99}> <span className="head-example"></span> </Badge> <Badge text={108}> <span className="head-example"></span> </Badge> </div>, mountNode);
  1. .am-badge { margin-right: 8px;}

综合示例

结合列表的案例参考

  1. import { List, Badge } from 'antd-mobile';
  2. ReactDOM.render(
  3. <div className="badge-container">
  4. <form>
  5. <List>
  6. <List.Header>列表</List.Header>
  7. <List.Body>
  8. <List.Item extra="内容内容">
  9. 文本内容<Badge dot style={{ marginLeft: 8 }} />
  10. </List.Item>
  11. <List.Item extra="内容内容" arrow="horizontal">
  12. 文本内容<Badge text={'new'} style={{ marginLeft: 8 }} />
  13. </List.Item>
  14. <List.Item extra="内容内容" arrow="horizontal">
  15. 文本内容<Badge text={4} style={{ marginLeft: 8 }} />
  16. </List.Item>
  17. <List.Item extra="内容内容" arrow="horizontal">
  18. 文本内容<Badge text={100} style={{ marginLeft: 8 }} />
  19. </List.Item>
  20. </List.Body>
  21. </List>
  22. <List>
  23. <List.Header>带icon</List.Header>
  24. <List.Body>
  25. <List.Item extra="内容内容" arrow="horizontal">
  26. <div style={{ padding: '4px 0' }}>
  27. <Badge dot>
  28. <span style={{ width: 28, height: 28, background: 'rgba(255, 140, 101, 0.15)', display: 'inline-block' }}></span>
  29. </Badge>小圆点
  30. </div>
  31. </List.Item>
  32. <List.Item thumb="https://os.alipayobjects.com/rmsportal/JteFDJaPwHuwXgs.jpg" extra={<Badge text={77} />} arrow="horizontal">
  33. 右侧内容
  34. </List.Item>
  35. <List.Item thumb="https://os.alipayobjects.com/rmsportal/JteFDJaPwHuwXgs.jpg">
  36. 内容内容
  37. </List.Item>
  38. </List.Body>
  39. </List>
  40. <List>
  41. <List.Body>
  42. <List.Item extra="内容内容" arrow="horizontal">
  43. <div style={{ padding: '4px 0' }}>
  44. <Badge text={'new'} corner>
  45. <span style={{ width: 52, height: 52, background: 'rgba(255, 140, 101, 0.15)', display: 'inline-block' }}></span>
  46. </Badge>有角标
  47. </div>
  48. </List.Item>
  49. <List.Item extra="内容内容" arrow="horizontal">
  50. <div style={{ padding: '10px 0' }}>
  51. <Badge text={9}>
  52. <span style={{ width: 52, height: 52, background: 'rgba(255, 140, 101, 0.15)', display: 'inline-block' }}></span>
  53. </Badge>数字
  54. </div>
  55. </List.Item>
  56. <List.Item extra="内容内容" arrow="horizontal">
  57. <div style={{ padding: '10px 0' }}>
  58. <Badge text={108}>
  59. <span style={{ width: 52, height: 52, background: 'rgba(255, 140, 101, 0.15)', display: 'inline-block' }}></span>
  60. </Badge>超出99
  61. </div>
  62. </List.Item>
  63. </List.Body>
  64. </List>
  65. <List>
  66. <List.Body>
  67. <List.Item extra="内容内容" arrow="horizontal">
  68. <div style={{ padding: '4px 0' }}>
  69. <Badge text={'限时优惠'} corner size="large">
  70. <span style={{ width: 72, height: 72, background: 'rgba(255, 140, 101, 0.15)', display: 'inline-block' }}></span>
  71. </Badge>角标
  72. </div>
  73. </List.Item>
  74. </List.Body>
  75. </List>
  76. </form>
  77. </div>
  78. , mountNode);
  1. .am-badge {
  2. margin-right: 8px;
  3. }

Badge徽标数 - 图1

API

成员说明类型默认值
text展示的数字或文案,当为数字时候,大于 overflowCount 时显示为 ${overflowCount}+,为 0 时隐藏String|Number-
dot不展示数字,只有一个小红点Booleanfalse
corner展示位角标样式Booleanfalse
overflowCount展示封顶的数字值Number99
size红点及角标状态下可选默认(null)或者大号(large)String-