Avatar头像 - 图1

Avatar 头像

用来代表用户或事物,支持图片、图标或字符展示。

设计师专属

安装 Kitchen Sketch 插件 💎,一键填充高逼格头像和文本。

代码演示

Avatar头像 - 图2Avatar头像 - 图3Avatar头像 - 图4Avatar头像 - 图5
Avatar头像 - 图6Avatar头像 - 图7Avatar头像 - 图8Avatar头像 - 图9

基本

头像有三种尺寸,两种形状可选。

  1. <template>
  2. <a-avatar :size="64">
  3. <template #icon><UserOutlined /></template>
  4. </a-avatar>
  5. <a-avatar size="large">
  6. <template #icon><UserOutlined /></template>
  7. </a-avatar>
  8. <a-avatar>
  9. <template #icon><UserOutlined /></template>
  10. </a-avatar>
  11. <a-avatar size="small">
  12. <template #icon><UserOutlined /></template>
  13. </a-avatar>
  14. <br />
  15. <a-avatar shape="square" :size="64">
  16. <template #icon><UserOutlined /></template>
  17. </a-avatar>
  18. <a-avatar shape="square" size="large">
  19. <template #icon><UserOutlined /></template>
  20. </a-avatar>
  21. <a-avatar shape="square">
  22. <template #icon><UserOutlined /></template>
  23. </a-avatar>
  24. <a-avatar shape="square" size="small">
  25. <template #icon><UserOutlined /></template>
  26. </a-avatar>
  27. </template>
  28. <script lang="ts">
  29. import { UserOutlined } from '@ant-design/icons-vue';
  30. import { defineComponent } from 'vue';
  31. export default defineComponent({
  32. components: {
  33. UserOutlined,
  34. },
  35. });
  36. </script>

U改 变

自动调整字符大小

对于字符型的头像,当字符串较长时,字体大小可以根据头像宽度自动调整。

  1. <template>
  2. <a-avatar
  3. shape="square"
  4. size="large"
  5. :style="{ backgroundColor: color, verticalAlign: 'middle' }"
  6. >
  7. {{ avatarValue }}
  8. </a-avatar>
  9. <a-button
  10. size="small"
  11. :style="{ marginLeft: '16px', verticalAlign: 'middle' }"
  12. @click="changeValue"
  13. >
  14. 改变
  15. </a-button>
  16. </template>
  17. <script lang="ts">
  18. import { defineComponent, ref } from 'vue';
  19. const UserList = ['U', 'Lucy', 'Tom', 'Edward'];
  20. const colorList = ['#f56a00', '#7265e6', '#ffbf00', '#00a2ae'];
  21. export default defineComponent({
  22. setup() {
  23. const avatarValue = ref(UserList[0]);
  24. const color = ref(colorList[0]);
  25. const changeValue = () => {
  26. const index = UserList.indexOf(avatarValue.value);
  27. avatarValue.value = index < UserList.length - 1 ? UserList[index + 1] : UserList[0];
  28. color.value = index < colorList.length - 1 ? colorList[index + 1] : colorList[0];
  29. };
  30. return {
  31. avatarValue,
  32. color,
  33. changeValue,
  34. };
  35. },
  36. });
  37. </script>

Avatar头像 - 图10UUSERAvatar头像 - 图11UAvatar头像 - 图12

类型

支持三种类型:图片、Icon 以及字符,其中 Icon 和字符型可以自定义图标颜色及背景色。

  1. <template>
  2. <a-avatar>
  3. <template #icon>
  4. <UserOutlined />
  5. </template>
  6. </a-avatar>
  7. <a-avatar>U</a-avatar>
  8. <a-avatar>USER</a-avatar>
  9. <a-avatar src="https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png" />
  10. <a-avatar style="color: #f56a00; backgroundcolor: #fde3cf">U</a-avatar>
  11. <a-avatar style="backgroundcolor: #87d068">
  12. <template #icon>
  13. <UserOutlined />
  14. </template>
  15. </a-avatar>
  16. </template>
  17. <script lang="ts">
  18. import { UserOutlined } from '@ant-design/icons-vue';
  19. import { defineComponent } from 'vue';
  20. export default defineComponent({
  21. components: {
  22. UserOutlined,
  23. },
  24. });
  25. </script>

Avatar头像 - 图13

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Avatar头像 - 图14

带徽标的头像

通常用于消息提示。

  1. <template>
  2. <span style="margin-right: 24px">
  3. <a-badge :count="1">
  4. <a-avatar shape="square">
  5. <template #icon><UserOutlined /></template>
  6. </a-avatar>
  7. </a-badge>
  8. </span>
  9. <span>
  10. <a-badge dot>
  11. <a-avatar shape="square">
  12. <template #icon><UserOutlined /></template>
  13. </a-avatar>
  14. </a-badge>
  15. </span>
  16. </template>
  17. <script lang="ts">
  18. import { UserOutlined } from '@ant-design/icons-vue';
  19. import { defineComponent } from 'vue';
  20. export default defineComponent({
  21. components: {
  22. UserOutlined,
  23. },
  24. });
  25. </script>
  26. <style>
  27. #components-avatar-demo-badge .ant-avatar {
  28. margin-top: 0;
  29. margin-right: 0;
  30. }
  31. </style>

API

参数说明类型默认值
icon设置头像的图标类型,可设为 Icon 的 type 或 VNodeVNode | slot-
shape指定头像的形状Enum{ ‘circle’, ‘square’ }circle
size设置头像的大小number | Enum{ ‘large’, ‘small’, ‘default’ }default
src图片类头像的资源地址string-
srcset设置图片类头像响应式资源地址string-
alt图像无法显示时的替代文本string-
loadError图片加载失败的事件,返回 false 会关闭组件默认的 fallback 行为() => boolean-