Avatar 头像
Avatar 组件可以用来代表人物或对象,支持使用图片、图标或者文字作为 Avatar。
基础用法
使用 shape 和 size 属性来设置 Avatar 的形状和大小。
export function AvatarBasic() {
const renderSizes = (shape?: "circle" | "square", src = CIRCLE_URL) => (
<div style={basicRow}>
<div style={{ ...basicBlock, ...divider }}>
<ElAvatar size={50} shape={shape} src={src} alt="avatar" />
</div>
<div style={{ ...basicBlock, ...divider }}>
<ElAvatar size="small" shape={shape} src={src} alt="avatar" />
</div>
<div style={{ ...basicBlock, ...divider }}>
<ElAvatar shape={shape} src={src} alt="avatar" />
</div>
<div style={basicBlock}>
<ElAvatar size="large" shape={shape} src={src} alt="avatar" />
</div>
</div>
);
return (
<ElRow style={basicRowStyle}>
<ElCol lg={12} md={12} style={basicColDivider}>
<div style={{ ...subTitle, textAlign: "center" }}>circle</div>
{renderSizes("circle", CIRCLE_URL)}
</ElCol>
<ElCol lg={12} md={12} style={basicCol}>
<div style={{ ...subTitle, textAlign: "center" }}>square</div>
{renderSizes("square", SQUARE_URL)}
</ElCol>
</ElRow>
);
}
展示类型
export function AvatarTypes() {
return (
<div style={typesRow}>
<div style={{ ...typeBlock, ...divider }}>
<ElAvatar icon={<UserFilled />} />
</div>
<div style={{ ...typeBlock, ...divider }}>
<ElAvatar src={TYPES_URL} alt="avatar" />
</div>
<div style={typeBlock}>
<ElAvatar>user</ElAvatar>
</div>
</div>
);
}
回退行为
export function AvatarFallback() {
return (
<div>
<ElAvatar
size={60}
src="https://empty"
onError={() => true}
alt="avatar"
>
<img src={FALLBACK_URL} alt="avatar" />
</ElAvatar>
</div>
);
}
适应容器
头像组 2.13.1
显示为头像组
使用标签 <el-avatar-group> 来分组您的头像。
use collapse-avatars
+ 4use collapse-class and collapse-style
+ 4use collapse-avatars-tooltip
export function AvatarGroupDemo() {
const avatars = Array.from({ length: 5 }, (_, index) => (
<ElAvatar key={index} src={CIRCLE_URL} alt="avatar" />
));
return (
<>
<div style={groupBlock}>
<p>default</p>
<ElAvatarGroup>{avatars}</ElAvatarGroup>
</div>
<div style={groupBlock}>
<p>use collapse-avatars</p>
<ElAvatarGroup collapseAvatars>{avatars}</ElAvatarGroup>
</div>
<div style={groupBlock}>
<p>use collapse-class and collapse-style</p>
<ElAvatarGroup
collapseAvatars
collapseClass="my-collapse-avatar"
collapseStyle={{
backgroundColor: "#d9ecff",
color: "var(--el-color-primary)",
}}
>
{avatars}
</ElAvatarGroup>
</div>
<div style={groupBlock}>
<p>use max-collapse-avatars</p>
<ElAvatarGroup collapseAvatars maxCollapseAvatars={3}>
{avatars}
</ElAvatarGroup>
</div>
<div style={groupBlock}>
<p>use collapse-avatars-tooltip</p>
<ElAvatarGroup
collapseAvatars
collapseAvatarsTooltip
maxCollapseAvatars={3}
>
{avatars}
</ElAvatarGroup>
</div>
</>
);
}
Avatar API
Avatar Attributes
| 属性名 | 说明 | 类型 | 默认值 |
|---|
| size | 尺寸,数字按 px 处理,也可传尺寸名 | number / enum | — |
| shape | 形状 | enum | circle |
| icon | 图标,图片加载失败时回退显示 | Component | — |
| src | 图片地址 | string | — |
| alt | 原生 alt | string | — |
| src-set | 原生 srcSet | string | — |
| fit | 图片填充方式 | enum | cover |
Avatar Events
| 事件名 | 说明 | 参数 |
|---|
| onError | 图片加载失败时触发 | Function |
AvatarGroup Attributes
| 属性名 | 说明 | 类型 | 默认值 |
|---|
| size | 统一尺寸,下发到组内 Avatar | number / string | — |
| shape | 统一形状,下发到组内 Avatar | enum | — |
| collapse-avatars | 是否折叠超出的头像 | boolean | false |
| collapse-avatars-tooltip | 悬浮折叠头像时展示全部被折叠的头像 | boolean | false |
| max-collapse-avatars | 最多展示的头像数量 | number | 1 |
| effect | 折叠提示主题 | enum | light |
| placement | 折叠提示位置 | enum placement | top |
| popper-class / popper-style | 折叠提示的自定义类名与样式 | string / object | — |
| collapse-class / collapse-style | 折叠头像的类名与样式 | string / object | — |