logoAnt Design

⌘ K
  • 设计
  • 研发
  • 组件
  • 博客
  • 资源
  • 国内镜像
5.25.3
  • 组件总览
  • 通用
    • Button按钮
    • FloatButton悬浮按钮
      5.0.0
    • Icon图标
    • Typography排版
  • 布局
    • Divider分割线
    • Flex弹性布局
      5.10.0
    • Grid栅格
    • Layout布局
    • Space间距
    • Splitter分隔面板
      5.21.0
  • 导航
    • Anchor锚点
    • Breadcrumb面包屑
    • Dropdown下拉菜单
    • Menu导航菜单
    • Pagination分页
    • Steps步骤条
    • Tabs标签页
  • 数据录入
    • AutoComplete自动完成
    • Cascader级联选择
    • Checkbox多选框
    • ColorPicker颜色选择器
      5.5.0
    • DatePicker日期选择框
    • Form表单
    • Input输入框
    • InputNumber数字输入框
    • Mentions提及
    • Radio单选框
    • Rate评分
    • Select选择器
    • Slider滑动输入条
    • Switch开关
    • TimePicker时间选择框
    • Transfer穿梭框
    • TreeSelect树选择
    • Upload上传
  • 数据展示
    • Avatar头像
    • Badge徽标数
    • Calendar日历
    • Card卡片
    • Carousel走马灯
    • Collapse折叠面板
    • Descriptions描述列表
    • Empty空状态
    • Image图片
    • List列表
    • Popover气泡卡片
    • QRCode二维码
      5.1.0
    • Segmented分段控制器
    • Statistic统计数值
    • Table表格
    • Tag标签
    • Timeline时间轴
    • Tooltip文字提示
    • Tour漫游式引导
      5.0.0
    • Tree树形控件
  • 反馈
    • Alert警告提示
    • Drawer抽屉
    • Message全局提示
    • Modal对话框
    • Notification通知提醒框
    • Popconfirm气泡确认框
    • Progress进度条
    • Result结果
    • Skeleton骨架屏
    • Spin加载中
    • Watermark水印
      5.1.0
  • 其他
    • Affix固钉
    • App包裹组件
      5.1.0
    • ConfigProvider全局化配置
    • Util工具类
      5.13.0

Popover
气泡卡片

点击/鼠标移入元素,弹出气泡式的卡片浮层。
使用import { Popover } from "antd";
源码components/popover
文档
编辑此页更新日志

相关资源

Ant Design X
Ant Design Charts
Ant Design Pro
Pro Components
Ant Design Mobile
Ant Design Mini
Ant Design Web3
Ant Design Landing-首页模板集
Scaffolds-脚手架市场
Umi-React 应用开发框架
dumi-组件/文档研发工具
qiankun-微前端框架
Ant Motion-设计动效
国内镜像站点 🇨🇳

社区

Awesome Ant Design
Medium
Twitter
yuque logoAnt Design 语雀专栏
Ant Design 知乎专栏
体验科技专栏
seeconf logoSEE Conf-蚂蚁体验科技大会
加入我们

帮助

GitHub
更新日志
常见问题
报告 Bug
议题
讨论区
StackOverflow
SegmentFault

Ant XTech logo更多产品

yuque logo语雀-构建你的数字花园
AntV logoAntV-数据可视化解决方案
Egg logoEgg-企业级 Node.js 框架
Kitchen logoKitchen-Sketch 工具集
Galacean logoGalacean-互动图形解决方案
xtech logo蚂蚁体验科技
主题编辑器
Made with ❤ by
蚂蚁集团和 Ant Design 开源社区

何时使用

当目标元素有进一步的描述和相关操作时,可以收纳到卡片中,根据用户的操作行为进行展现。

和 Tooltip 的区别是,用户可以对浮层上的元素进行操作,因此它可以承载更复杂的内容,比如链接或按钮等。

代码演示

基本

最简单的用法,浮层的大小由内容区域决定。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
位置

位置有十二个方向。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
贴边偏移

当 Popover 贴边时,自动偏移并且调整箭头位置。当超出过多时,则一同滚出屏幕。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
悬停点击弹出窗口

以下示例显示如何创建可悬停和单击的弹出窗口。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
三种触发方式

鼠标移入、聚集、点击。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
箭头展示

通过 arrow 属性隐藏箭头。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
从浮层内关闭

使用 open 属性控制浮层显示。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code

API

通用属性参考:通用属性

参数说明类型默认值版本
content卡片内容ReactNode | () => ReactNode-
title卡片标题ReactNode | () => ReactNode-
以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。
参数说明类型默认值版本
align该值将合并到 placement 的配置中,设置参考 dom-alignobject-
arrow修改箭头的显示状态以及修改箭头是否指向目标元素中心boolean | { pointAtCenter: boolean }true5.2.0
autoAdjustOverflow气泡被遮挡时自动调整位置booleantrue
color背景颜色string-4.3.0
defaultOpen默认是否显隐booleanfalse4.23.0
destroyTooltipOnHide关闭后是否销毁 dombooleanfalse
destroyOnHidden关闭后是否销毁 dombooleanfalse5.25.0
fresh默认情况下,Tooltip 在关闭时会缓存内容。设置该属性后会始终保持更新booleanfalse5.10.0
getPopupContainer浮层渲染父节点,默认渲染到 body 上(triggerNode: HTMLElement) => HTMLElement() => document.body
mouseEnterDelay鼠标移入后延时多少才显示 Tooltip,单位:秒number0.1
mouseLeaveDelay鼠标移出后延时多少才隐藏 Tooltip,单位:秒number0.1
overlayClassName卡片类名, 请使用 classNames={{ root: '' }} 替换string-
overlayStyle卡片样式, 请使用 styles={{ root: {} }} 替换React.CSSProperties-
overlayInnerStyle卡片内容区域的样式对象, 请使用 styles={{ body: {} }} 替换React.CSSProperties-
placement气泡框位置,可选 top left right bottom topLeft topRight bottomLeft bottomRight leftTop leftBottom rightTop rightBottomstringtop
trigger触发行为,可选 hover | focus | click | contextMenu,可使用数组设置多个触发行为string | string[]hover
open用于手动控制浮层显隐,小于 4.23.0 使用 visible(为什么?)booleanfalse4.23.0
zIndex设置 Tooltip 的 z-indexnumber-
onOpenChange显示隐藏的回调(open: boolean) => void-4.23.0

注意

请确保 Popover 的子元素能接受 onMouseEnter、onMouseLeave、onFocus、onClick 事件。

Semantic DOM

  • root
    5.23.0
    根元素 (包含箭头、内容元素)
  • body
    5.23.0
    内容元素

主题变量(Design Token)

组件 Token如何定制?
Token 名称描述类型默认值
titleMinWidth气泡卡片标题最小宽度string | number177
zIndexPopup气泡卡片 z-indexnumber1030
全局 Token如何定制?

FAQ

以下常见问题均适用于 Tooltip、Popconfirm、Popover 组件

为何在严格模式中有时候会出现 findDOMNode is deprecated 这个警告?

这是由于 rc-trigger 的实现方式导致的,rc-trigger 强制要求 children 能够接受 ref,否则就会 fallback 到 findDOMNode,所以 children 需要是原生 html 标签,如果不是,则需要使用 React.forwardRef 把 ref 透传到原生 html 标签。

  • findDOMNode is deprecated 重现:https://codesandbox.io/p/sandbox/finddomnode-c5hy96
  • 使用 forwardRef 消除警告:https://codesandbox.io/p/sandbox/no-finddomnode-warning-forked-gdxczs

为什么自定义子组件无法正常工作?

类似问题: #15909, #12812。

请确保子元素能接受 onMouseEnter、onMouseLeave、onPointerEnter、onPointerLeave、onFocus、onClick 事件。参考示例

placement 的行为逻辑是什么?

当屏幕空间足够时,会按照 placement 的设置进行弹层。当空间不足时则会取反向位置进行弹层(例如 top 不够时,会改为 bottom,topLeft 不够时会改为 bottomLeft)。单一方向如 top bottom left right 当贴边时进行自动位移:

shift

当设置为边缘对齐方向如 topLeft bottomRight 等,则会仅做翻转而不做位移。

更多问题,请参考 Tooltip FAQ。