logoAnt Design

⌘ K
  • 设计
  • 研发
  • 组件
  • 博客
  • 资源
  • 国内镜像
6.0.0-alpha.3
  • 组件总览
  • 更新日志
    v6.0.0-alpha.3
  • 通用
    • Button按钮
    • FloatButton悬浮按钮
      5.0.0
    • Icon图标
    • Typography排版
  • 布局
    • Divider分割线
    • Flex弹性布局
      5.10.0
    • Grid栅格
    • Layout布局
    • Masonry瀑布流
      6.0.0
    • 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工具类
何时使用
代码演示
基本
平滑过渡
位置
箭头展示
贴边偏移
多彩文字提示
禁用
自定义子组件
自定义语义结构的样式和类
API
共同的 API
ConfigProvider - tooltip.unique
Semantic DOM
主题变量(Design Token)
FAQ
为何有时候 HOC 组件无法生效?
为何 Tooltip 的内容在关闭时不会更新?
为何在严格模式中有时候会出现 findDOMNode is deprecated 这个警告?
为什么自定义子组件无法正常工作?
placement 的行为逻辑是什么?

Tooltip
文字提示

简单的文字提示气泡框。
使用import { Tooltip } from "antd";
反馈
components/tooltip提交问题待解决
文档
编辑此页
文档贡献者
Timeline时间轴Tour漫游式引导

相关资源

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
X
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-互动图形解决方案
WeaveFox logoWeaveFox-前端智能研发
xtech logo蚂蚁体验科技
主题编辑器
Made with ❤ by
蚂蚁集团和 Ant Design 开源社区
loading

何时使用

鼠标移入则显示提示,移出消失,气泡浮层不承载复杂文本和操作。

可用来代替系统默认的 title 提示,提供一个 按钮/文字/操作 的文案解释。

代码演示

API

通用属性参考:通用属性

参数说明类型默认值版本
title提示文字ReactNode | () => ReactNode--
color设置背景颜色,使用该属性后内部文字颜色将自适应string-5.27.0
classNames语义化结构 classRecord<SemanticDOM, string> | (info: { props }) => Record<SemanticDOM, string>-
styles语义化结构 styleRecord<SemanticDOM, CSSProperties> | (info: { props }) => Record<SemanticDOM, CSSProperties>-

共同的 API

以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。
参数说明类型默认值版本
align请参考 dom-align 进行配置object-
arrow修改箭头的显示状态以及修改箭头是否指向目标元素中心boolean | { pointAtCenter: boolean }true5.2.0
autoAdjustOverflow气泡被遮挡时自动调整位置booleantrue
color背景颜色string-4.3.0
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-
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
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-
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

ConfigProvider - tooltip.unique

可以通过 ConfigProvider 全局配置 Tooltip 的唯一性显示。当 unique 设置为 true 时,同一时间 ConfigProvider 下的 Tooltip 只会显示一个,提供更好的用户体验和平滑的过渡效果。

注意:配置后 getContainer、arrow 等属性将会失效。

tsx
import { Button, ConfigProvider, Space, Tooltip } from 'antd';
export default () => (
<ConfigProvider
tooltip={{
unique: true,
}}
>
<Space>
<Tooltip title="第一个提示">
<Button>按钮 1</Button>
</Tooltip>
<Tooltip title="第二个提示">
<Button>按钮 2</Button>
</Tooltip>
</Space>
</ConfigProvider>
);

Semantic DOM

  • root
    根元素 (包含箭头、内容元素),设置绝对定位、层级、块级显示、最大宽度、可见性、变换原点和箭头背景色
  • container
    内容元素,设置最小宽度高度、内边距、颜色、文本对齐、背景色、圆角、阴影和边框样式
  • arrow
    箭头元素,设置宽高、位置、颜色和边框样式

主题变量(Design Token)

组件 Token如何定制?
Token 名称描述类型默认值
zIndexPopup文字提示 z-indexnumber1070
全局 Token如何定制?

FAQ

为何有时候 HOC 组件无法生效?

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

请查看 https://github.com/ant-design/ant-design/issues/15909

为何 Tooltip 的内容在关闭时不会更新?

Tooltip 默认在关闭时会缓存内容,以防止内容更新时出现闪烁:

jsx
// `title` 不会因为 `user` 置空而闪烁置空
<Tooltip open={user} title={user?.name} />
no blink

如果需要在关闭时也更新内容,可以设置 fresh 属性(例如 #44830 中的场景):

jsx
<Tooltip open={user} title={user?.name} fresh />
no blink

以下常见问题均适用于 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 will show on mouse enter.
基本

最简单的用法。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
位置

位置有 12 个方向。

CodeSandbox Icon
codepen icon
External Link Icon
Expand Icon
贴边偏移

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

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
禁用

通过设置 title={null} 或者 title="" 可以禁用 Tooltip。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
自定义语义结构的样式和类

通过 classNames 和 styles 传入对象/函数可以自定义 Tooltip 的语义化结构样式。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
6.0.0
平滑过渡

通过 ConfigProvider 全局配置 实现同一时间只显示一个 Tooltip 的平滑过渡效果。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
箭头展示

支持显示、隐藏以及将箭头保持居中定位。

Presets
Custom
多彩文字提示

我们添加了多种预设色彩的文字提示样式,用作不同场景使用。

CodeSandbox Icon
codepen icon
External Link Icon
Expand Icon
This text is inside a component with the necessary events exposed.
自定义子组件

与自定义组件一起使用.

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
Hitu Icon
CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
Hitu Icon