Tooltip 文字提示

鼠标悬浮时显示提示信息。

基础用法

Tooltip 有 9 个 placement。

主题

Tooltip 内置了两套主题:darklight

提示

要使用自定义主题,您需要知道您的 Tooltip 渲染到了哪个位置,如果您的 Tooltip 渲染到了根元素,您将需要全局设置 CSS 规则。

当您使用自定义主题并同时显示箭头时,建议不要使用线性渐变背景色,因为弹出箭头和内容是两个不同的元素,弹出箭头的样式需要单独设置,而当涉及到渐变背景色时,看起来可能会有点奇怪。

更多内容

显示多行文本并设置其格式。

高级用法

除了基本用法外,还有一些属性可以让你自定义自己的

transition 属性允许您自定义 Tooltip 显示或隐藏时的动画,默认值为 el-fade-in-linear。

disabled 属性可以让你禁用 tooltip。 你只需要把它设置为 true

事实上,Tooltip 是基于 ElPopper 的扩展,你可以使用 ElPopper 中允许的任何属性。

提示

router-link 组件在 tooltip 中不受支持,请使用 vm.$router.push

Tooltip 不支持禁用的表单元素,更多信息可以在 MDN 找到。 您需要将禁用的表单元素包裹在一个容器元素中,Tooltip 才能正常工作。

HTML 作为内容

content 属性可以设置为 HTML 字符串。

警告

虽然 `content` 属性支持 HTML 字符串,但在网站上动态渲染任意 HTML 可能非常危险,因为它很容易导致 XSS 攻击。因此,当 `raw-content` 开启时,请确保 `content` 是受信任的,并且**永远不要**分配用户提供的 `content`。

虚拟触发

有时我们想在其他一些触发元素上渲染 tooltip,我们可以将触发器和内容分开。

提示

虚拟触发 tooltip 是受控组件,因此在这种情况下您必须自己控制 tooltip 的可见性,您将**无法**通过单击其他地方来关闭 tooltip。

单例

Tooltip 也可以是单例的,这意味着您可以有多个触发器,但只有一个 tooltip 实例,这个功能是基于 `虚拟触发` 实现的

提示

已知问题:使用单例时,弹出窗口会从意想不到的地方弹出

受控

Tooltip 可以由父组件控制,通过使用 `:visible` 您可以实现双向绑定。

动画

Tooltip 可以自定义动画,您可以使用 `transition` 设置所需的动画。

提示

过渡类,更多信息可以在 Vue Transition 找到。

使用 `append-to`

在使用 `targetElement` 之前,您必须等待 DOM 挂载完毕。

API

属性

名称描述类型默认值
append-totooltip 内容附加到哪个元素CSSSelector / HTMLElement
effectTooltip 的主题,内置主题:`dark` / `light`枚举暗黑模式
content显示内容,可通过 `slot#content` 覆盖string''
raw-contentcontent 是否被视为 HTML 字符串booleanfalse
placementTooltip 的出现位置枚举bottom
fallback-placementsTooltip 的可能位置列表 popper.jsarray
visible / v-model:visibleTooltip 的可见性boolean
disabledTooltip 是否被禁用boolean
offsetTooltip 的偏移量number12
transition动画名称string
popper-optionspopper.js 参数object请参考 popper.js 文档{}
arrow-offset 2.9.10控制 tooltip 箭头的偏移(内边距),相对于 popper。number5
show-after出现延迟,单位为毫秒,在受控模式下无效number0
show-arrowtooltip 内容是否有箭头booleantrue
hide-after消失延迟,单位为毫秒,在受控模式下无效number200
auto-close隐藏 tooltip 的超时时间,单位为毫秒,在受控模式下无效number0
popper-classTooltip 的 popper 的自定义类名string
popper-styleTooltip 的 popper 的自定义样式string / object
enterable鼠标是否可以进入 tooltipbooleantrue
teleportedtooltip 内容是否被传送,如果为 `true`,它将被传送到 `append-to` 设置的位置booleantrue
triggertooltip 应该如何触发(显示),在受控模式下无效枚举 / 对象悬浮时
virtual-triggering指示是否启用虚拟触发boolean
virtual-ref指示 tooltip 附加到的引用元素HTMLElement
trigger-keys当您单击鼠标聚焦于触发元素时,可以通过键盘定义一组键盘码来控制 tooltip 的显示,在受控模式下无效数组['Enter','Space']
persistent当 tooltip 不活动且 `persistent` 为 `false` 时,tooltip 将被销毁boolean
aria-label 无障碍与 `aria-label` 相同string
focus-on-target 2.11.2通过悬停触发 tooltip 时,是否聚焦触发元素,这可以提高可访问性booleanfalse

事件

名称描述类型
before-show在 tooltip 显示前触发。将触发原因作为参数传递。Function
show在 tooltip 显示时触发。将触发原因作为参数传递。Function
before-hide在 tooltip 隐藏前触发。将触发原因作为参数传递。Function
hide在 tooltip 隐藏时触发。将触发原因作为参数传递。Function

插槽

名称描述
defaultTooltip 触发和引用元素,只接受单个根元素
content自定义内容

暴露

名称描述类型
popperRefel-popper 组件实例object
contentRefel-tooltip-content 组件实例object
isFocusInsideContent验证当前焦点事件是否在 el-tooltip-content 内部触发Function
updatePopper更新 el-popper 组件实例Function
onOpen暴露 onOpen 函数来管理 el-tooltip 的打开状态Function
onClose暴露 onClose 函数来管理 el-tooltip 的打开状态Function
hide暴露 hide 函数Function

常见问题

当 tooltip 嵌套时如何允许输入框中输入空格?

典型问题: #20907

vue
<template>
  <el-tooltip content="tooltip content" placement="top" :trigger-keys="[]">
    <el-input v-model="value" placeholder="" />
  </el-tooltip>
</template>

来源

组件样式文档

贡献者