UI组件前端【免费下载链接】ng-zorro-antdAngular UI Component Library based on Ant Design项目地址https://gitcode.com/gh_mirrors/ng/ng-zorro-antd点击查看免费下载本文围绕 NG-ZORRO 组件库中 Avatar 头像组Avatar Group的组合展示能力展开。头像组用于将多个头像并排呈现常见于团队协作、项目成员、评论回复等需要多人集合展示的场景。通过阅读本文你将掌握nz-avatar-group的基本用法、头像的四种展示形态图片 / 图标 / 文字 / 自定义内容、超出数量时的折叠聚合技巧以及其底层组件与样式实现原理可直接在 Angular 项目中落地使用。一、头像组是什么组合展示的核心形态在 头像组演示文档 中头像组的定位被一句话概括为头像组合展现Avatar group display。与单个nz-avatar不同nz-avatar-group是一个纯粹的组合容器它本身不渲染具体内容而是将内部多个nz-avatar按组的方式排布形成水平重叠、整齐划一的视觉队列。从使用形态上看头像组通常承载两种交互意图并列展示将多个成员头像依次排列完整呈现所有成员聚合折叠当成员数量超出可展示范围时以 N 文本头像的形式收敛剩余成员保留整体信息的完整性。这两种形态在官方演示 group.ts 中均有完整示例下文将逐一拆解。二、基础用法构建第一个头像组头像组的使用非常轻量只需在模板中把若干个nz-avatar放进nz-avatar-group容器即可。以官方演示的第一个组为例来源group.tsnz-avatar-group nz-avatar nzIconuser nzSrc//zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png / nz-avatar stylebackground-color: #f56a00 nzTextU / nz-avatar stylebackground-color: #87d068 nz-tooltip nzTooltipTitleNG-ZORRO User nzIconuser / nz-avatar stylebackground-color: #1890ff nzTextNG / nz-avatar [nzSize]32 nz-icon nzTypeant-design nzThemeoutline / /nz-avatar /nz-avatar-group对应的组件类group.ts声明如下Component({ selector: nz-demo-avatar-group, imports: [NzAvatarModule, NzDividerModule, NzTooltipModule, NzIconModule], template: ... }) export class NzDemoAvatarGroupComponent {}要点说明需要导入NzAvatarModule来自ng-zorro-antd/avatar示例中还同时引入了NzDividerModule、NzTooltipModule、NzIconModule分别用于示例间的分隔线、头像上的提示气泡和自定义图标内容这个示例同时演示了图片头像、文字头像、图标头像、自定义内容头像四种形态以及通过[nzSize]32直接指定像素尺寸的用法中间的头像通过nz-tooltip与nzTooltipTitleNG-ZORRO User挂载了悬浮提示说明头像组内部可以自由组合任意nz-avatar的既有能力而不只是静态展示。头像的四种展示形态在组合场景中每个成员头像的类型取决于你传入的属性其优先级与判定逻辑可在 avatar.component.ts 的ngOnChanges中确认形态关键属性判定逻辑源码可见图片头像nzSrc可选nzSrcSet、nzAlt只要传入nzSrc即为图片头像图标头像nzIcon未设置nzSrc且设置了nzIcon文字头像nzText未设置nzSrc且设置了nzText自定义内容直接放入ng-content任意模板内容如nz-icon或其他元素渲染模板avatar.component.ts依次判断nzIcon、nzSrc、nzText最后兜底渲染ng-content因此当图片加载失败时还会走imgError的降级逻辑若nzIcon存在则回退到图标否则回退到文字avatar.component.ts。三、聚合折叠用 N 收敛超出成员头像组最有代表性的能力是数量折叠。当成员很多、界面空间有限时可以把剩余人数合并成一个文字头像。官方演示的第二个组来源group.ts给出了标准写法nz-avatar-group nz-avatar nzIconuser nzSrc//zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png / nz-avatar stylebackground-color: #f56a00 nzTextU / nz-avatar stylebackground-color: #fde3cf; color: #f56a00 nzText2 / /nz-avatar-group实现思路并不复杂前两个头像正常展示具体成员第三个头像使用nzText2配合自定义背景色#fde3cf与文字色#f56a00标识还有 2 位成员未展示该头像本质上仍是普通nz-avatar所以它同样继承文字头像的尺寸计算与缩放逻辑见下文第四节只是文本内容换成了人数标识。这是目前组件 API 层面给出的官方组合方式——nz-avatar-group本身不提供maxCount之类的自动折叠属性需要由业务方根据数据量自行决定渲染几个真实头像、何时切换为 N 文字头像。需要更多折叠交互时可结合nz-tooltip或自定义弹出层展示完整成员列表。四、文字头像的自动缩放保证组内视觉整齐头像组能呈现大小一致、文字不溢出的整齐效果关键在于文字头像内部有一套自动缩放机制其实现位于 avatar.component.ts 的calcStringSize方法每次渲染完成后通过afterEveryRender触发测量文字元素的真实宽度childrenWidth与头像容器宽度avatarWidth计算左右留白offset默认nzGap * 2但当头像过小nzGap * 2不小于头像宽度时自动退化为固定值8避免缩放异常若文字宽度超出可用宽度(avatarWidth - offset)则按比例scale缩放文字并通过transform: scale(...) translateX(-50%)保持居中。这一机制解释了为什么nzTextNG这类多字符文字头像不会撑破圆形边界也解释了nzText2折叠头像能自然适配任意尺寸的头像组。nzGap的默认值为4可通过nzGap属性或全局配置调整见 avatar.component.ts。五、核心 API 速查表头像组由nz-avatar-group容器与nz-avatar成员组成完整参数定义见 官方 API 文档。nz-avatar 成员参数参数说明类型默认值全局配置[nzIcon]设置头像的图标类型参考Iconstring-[nzShape]指定头像的形状circle \| squarecircle✅[nzSize]设置头像的大小large \| small \| default \| number \| { xs, sm, ... }default✅[nzGap]字符类型距离左右两侧边界单位像素number4✅[nzSrc]图片类头像的资源地址string-[nzSrcSet]设置图片类头像响应式资源地址string-[nzAlt]图像无法显示时的替代文本string-[nzText]文本类头像string-[nzLoading]设置图片类头像img元素原生loading属性eager \| lazyeager[nzFetchPriority]设置图片类头像img元素原生fetchpriority属性high \| low \| autoauto(nzError)图片加载失败事件调用preventDefault会阻止默认 fallback 行为EventEmitterEvent-其中带 ✅ 的参数可通过 NG-ZORRO 的全局配置NZ_CONFIG中avatar键统一设置例如默认形状、默认尺寸与默认nzGapnzSize自 22.1.0 起支持{ xs, sm, md, lg, xl, xxl }形式的响应式对象组件内部会结合NzBreakpointService订阅当前断点动态取值见 avatar.component.ts。nz-avatar-group 容器nz-avatar-group nz-avatar nzIconuser / !-- ... -- /nz-avatar-group容器不提供额外参数只负责包裹与排版。六、源码级原理容器组件与重叠样式容器组件的实现NzAvatarGroupComponent是一个极简的投影容器avatar-group.component.tsComponent({ selector: nz-avatar-group, exportAs: nzAvatarGroup, template: ng-content /, host: { class: ant-avatar-group } }) export class NzAvatarGroupComponent {}它通过ng-content /将内部头像原样投影仅在宿主元素上挂载ant-avatar-group样式类。也就是说头像组的所有视觉呈现都来自样式层而非组件逻辑。重叠与间距的样式实现头像组错落重叠、前后叠压的视觉效果定义在 group.less 中.{avatar-prefix-cls}-group { display: inline-flex; .{avatar-prefix-cls} { border: 1px solid avatar-group-border-color; :not(:first-child) { margin-inline-start: avatar-group-overlapping; } } -popover { .{ant-prefix}-avatar .{ant-prefix}-avatar { margin-inline-start: avatar-group-space; } } }关键点容器使用inline-flex保证头像水平排列并随内容自然撑开每个头像带1px边框颜色为avatar-group-border-color使重叠部分能清晰区分前后层级从第二个头像开始应用负值语义的margin-inline-start: avatar-group-overlapping产生重叠效果该值通常为负数形成卡片叠放观感预留了-popover子样式当折叠列表用弹出层展示时弹出层内部的头像改用avatar-group-space间距避免继续重叠。头像本身的基础样式圆形、尺寸、字号、图片铺满等在 index.less 中通过avatar-sizemixin 生成并支持ant-avatar-lg/ant-avatar-sm尺寸变体。测试验证仓库测试 avatar.spec.ts 验证了容器渲染后的关键约束查询NzAvatarGroupComponent指令对应的宿主元素断言其classList中包含ant-avatar-group。这说明host上的样式类绑定是头像组对外呈现的契约任何对组样式的自定义都应基于该类展开。七、实战建议数据驱动渲染头像组非常适合配合*ngFor或for从成员数组渲染当数组长度超过阈值如 3~4 个时渲染前N-1个真实头像 一个nzTextN的聚合头像即可低成本实现折叠。善用降级策略nzSrc加载失败时组件会自动回退到nzIcon/nzTextavatar.component.ts给成员头像同时配置nzSrc与nzText可避免图片失效时出现空白。组合其他组件头像组内部可自由混用nz-tooltip成员姓名提示、nz-badge在线状态角标等能力使其从静态展示升级为可交互的信息面板。自定义样式扩展如需调整重叠幅度、边框颜色或折叠态配色可通过覆盖ant-avatar-group样式类实现同时注意同步调整 group.less 中对应的 Less 变量。至此从演示代码到容器实现、从重叠样式到文字缩放头像组的完整工作链路已经清晰nz-avatar-group提供语义与布局外壳nz-avatar负责形态渲染与自适应缩放Less 样式层负责重叠与层级视觉三者协作即可覆盖绝大多数多人头像集合的展示需求。赞分享UI组件前端【免费下载链接】ng-zorro-antdAngular UI Component Library based on Ant Design项目地址https://gitcode.com/gh_mirrors/ng/ng-zorro-antd点击查看免费下载相关推荐ant-design-vue Avatar 头像组件完全指南API 详解、源码原理与实战示例ant design vue Avatar 头像组件完全指南API 详解、源码原理与实战示例 本指南以 ant design vue 官方文档 Avatar前端UI组件设计系统ng-zorro-antd 日期选择器显示周数nzShowWeekNumber 从演示到源码实现全解析ng zorro antd 日期选择器显示周数nzShowWeekNumber 从演示到源码实现全解析 本文基于 ng zorro antd 日期选择器daUI组件前端Ant Design Avatar 头像组件完全指南API、源码原理与实战用法Ant Design Avatar 头像组件完全指南API、源码原理与实战用法 头像Avatar是 Ant Design 中用于代表用户或事物的基础展示组前端UI组件设计系统上一篇ByteHook与xHook对比为什么ByteHook更适合线上环境下一篇10分钟学会提示工程llm-resource提示词模板与高级技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
IronClaw 测试体系完全指南:从三层测试策略到 CI/CD 质量门禁 人工智能AI 应用交互助手AI Agent 【免费下载链接】ironclaw IronClaw is an Agent OS focused on privacy, security and extensibility 项目地址: https://gitcode.com/gh_mirrors/iro/ironclaw 点击查看 免费下载 本篇技术指南系统讲解 Agent OS 项目 IronClaw … · 2026/9/25 7:20:16
MQ气体传感器ADC值到PPM浓度完整换算指南 做气体检测项目的时候,MQ系列传感器几乎是入场券级别的存在:便宜、皮实、常见气体基本全覆盖。但很多人跟我抱怨过同一件事——明明照着网上的例程把ADC读出来了,也把数字换算成了电压,结果用标准公式一算,浓度还是对不… · 2026/9/25 7:20:16
Atlas 300V Pro 24G部署YOLO:推理加速卡的完整实战指南 最近总有人拿着一张卡问我:Atlas 300V Pro 24G,这玩意儿到底算不算运算加速卡?它跟显卡有什么区别?能不能拿来部署YOLO跑目标检测?这问题问得挺实在的。Atlas 300V Pro 24G确实是昇腾生态里非常典型的AI推理加速卡&… · 2026/9/25 7:20:10
iOS原生CLI编程助手:本地运行CodeLlama的实践与架构 1. 这不是“把Claude塞进手机”,而是重构AI编程助手的终端形态我把 Claude Code 装进了手机,然后把它开源了——这句话乍听像极了某款App上架通知,但实际远比这复杂得多。它既不是调用官方API封装个壳子,也不是简单移植网页版到iO… · 2026/9/25 7:56:54
Dart SDK Front-End Builder 机制深度解析:源码与 dill 的统一程序元素构造抽象 编程语言编译器语言运行时标准库开发工具 【免费下载链接】sdk The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more. 项目地址: https://gitcode.com/gh_mirrors/sdk1/sdk 点击查看 免费下载 本文以 Dart SDK 前端编译器… · 2026/9/25 7:56:54
快马前端生成器:零基础入门的可视化代码教学工具 1. 快马不是“快码”,而是新手前端真正的第一块跳板我带过不少零基础转行的学员,前年有个刚毕业的文科生,连<div>和<span>都分不清,硬是靠快马生成的登录页,三个月后拿下某电商公司的前端实习岗。他没写过… · 2026/9/25 7:56:54
PHP连接Redis全攻略:扩展安装、哨兵集群与避坑实践 不少做PHP的朋友第一次接触Redis,都是从“装个扩展,然后new Redis()”开始的。但等到真正要上生产环境、要搭集群、要处理高并发下的连接异常时,才会发现Redis的客户端世界远比想象中复杂。这一篇实战实录,我专门把Redis扩展的几种… · 2026/9/25 7:56:48
iOS音视频开发核心:AVFoundation底层原理与实战 1. 这不是“又一个视频播放教程”,而是 iOS 视频开发的底层通关地图AVFoundation 是 iOS/macOS 上处理音视频最核心、最底层的框架,它不像 UIKit 那样“开箱即用”,也不像第三方库那样封装友好。它更像是一套精密的工业级工具箱——螺丝刀、游… · 2026/9/25 7:56:42
Simple Allow Copy:一键解锁网页复制限制的Chrome插件实战指南 你有没有遇到过这种情况:想从某个网页上复制一段文字,结果右键菜单被禁用;鼠标选中文字后,一按CtrlC,弹窗提示“该内容受版权保护”;或者更气人的是——复制倒是能复制,但粘贴出来后面自动跟了一… · 2026/9/25 7:56:42
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37