2020-08-13 15:18:26 +08:00
## Tooltip
Display prompt information for mouse hover.
### Basic usage
Tooltip has 9 placements.
:::demo Use attribute `content` to set the display content when hover. The attribute `placement` determines the position of the tooltip. Its value is `[orientation]-[alignment]` with four orientations `top` , `left` , `right` , `bottom` and three alignments `start` , `end` , `null` , and the default alignment is null. Take `placement="left-end"` for example, Tooltip will display on the left of the element which you are hovering and the bottom of the tooltip aligns with the bottom of the element.
2021-09-04 19:29:28 +08:00
2020-08-13 15:18:26 +08:00
```html
< div class = "box" >
< div class = "top" >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Top Left prompts info"
placement="top-start"
>
2020-08-13 15:18:26 +08:00
< el-button > top-start< / el-button >
< / el-tooltip >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Top Center prompts info"
placement="top"
>
2020-08-13 15:18:26 +08:00
< el-button > top< / el-button >
< / el-tooltip >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Top Right prompts info"
placement="top-end"
>
2020-08-13 15:18:26 +08:00
< el-button > top-end< / el-button >
< / el-tooltip >
< / div >
< div class = "left" >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Left Top prompts info"
placement="left-start"
>
2020-08-13 15:18:26 +08:00
< el-button > left-start< / el-button >
< / el-tooltip >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Left Center prompts info"
placement="left"
>
2020-08-13 15:18:26 +08:00
< el-button > left< / el-button >
< / el-tooltip >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Left Bottom prompts info"
placement="left-end"
>
2020-08-13 15:18:26 +08:00
< el-button > left-end< / el-button >
< / el-tooltip >
< / div >
< div class = "right" >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Right Top prompts info"
placement="right-start"
>
2020-08-13 15:18:26 +08:00
< el-button > right-start< / el-button >
< / el-tooltip >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Right Center prompts info"
placement="right"
>
2020-08-13 15:18:26 +08:00
< el-button > right< / el-button >
< / el-tooltip >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Right Bottom prompts info"
placement="right-end"
>
2020-08-13 15:18:26 +08:00
< el-button > right-end< / el-button >
< / el-tooltip >
< / div >
< div class = "bottom" >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Bottom Left prompts info"
placement="bottom-start"
>
2020-08-13 15:18:26 +08:00
< el-button > bottom-start< / el-button >
< / el-tooltip >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Bottom Center prompts info"
placement="bottom"
>
2020-08-13 15:18:26 +08:00
< el-button > bottom< / el-button >
< / el-tooltip >
2021-09-04 19:29:28 +08:00
< el-tooltip
class="item"
effect="dark"
content="Bottom Right prompts info"
placement="bottom-end"
>
2020-08-13 15:18:26 +08:00
< el-button > bottom-end< / el-button >
< / el-tooltip >
< / div >
< / div >
< style >
.box {
width: 400px;
.top {
text-align: center;
}
.left {
float: left;
width: 110px;
}
.right {
float: right;
width: 110px;
}
.bottom {
clear: both;
text-align: center;
}
.item {
margin: 4px;
}
.left .el-tooltip__popper,
.right .el-tooltip__popper {
padding: 8px 10px;
}
.el-button {
width: 110px;
}
}
< / style >
```
2021-09-04 19:29:28 +08:00
:::
2020-08-13 15:18:26 +08:00
### Theme
Tooltip has two themes: `dark` and `light` 。
:::demo Set `effect` to modify theme, and the default value is `dark` .
2021-09-04 19:29:28 +08:00
2020-08-13 15:18:26 +08:00
```html
< el-tooltip content = "Top center" placement = "top" >
< el-button > Dark< / el-button >
< / el-tooltip >
< el-tooltip content = "Bottom center" placement = "bottom" effect = "light" >
< el-button > Light< / el-button >
< / el-tooltip >
```
2021-09-04 19:29:28 +08:00
2020-08-13 15:18:26 +08:00
:::
### More Content
Display multiple lines of text and set their format.
:::demo Override attribute `content` of `el-tooltip` by adding a slot named `content` .
2021-09-04 19:29:28 +08:00
2020-08-13 15:18:26 +08:00
```html
< el-tooltip placement = "top" >
2021-09-04 19:29:28 +08:00
< template #content > multiple lines< br /> second line </ template >
2020-08-13 15:18:26 +08:00
< el-button > Top center< / el-button >
< / el-tooltip >
```
2021-09-04 19:29:28 +08:00
2020-08-13 15:18:26 +08:00
:::
### Advanced usage
In addition to basic usages, there are some attributes that allow you to customize your own:
`transition` attribute allows you to customize the animation in which the tooltip shows or hides, and the default value is el-fade-in-linear.
`disabled` attribute allows you to disable `tooltip` . You just need set it to `true` .
In fact, Tooltip is an extension based on [Vue-popper ](https://github.com/element-component/vue-popper ), you can use any attribute that are allowed in Vue-popper.
:::demo
2021-09-04 19:29:28 +08:00
2020-08-13 15:18:26 +08:00
```html
< template >
2021-09-04 19:29:28 +08:00
< el-tooltip
:disabled="disabled"
content="click to close tooltip function"
placement="bottom"
effect="light"
>
< el-button @click =" disabled = !disabled"
>click to {{disabled ? 'active' : 'close'}} tooltip function< /el-button
>
2020-08-13 15:18:26 +08:00
< / el-tooltip >
< / template >
< script >
export default {
data() {
return {
2021-09-04 19:29:28 +08:00
disabled: false,
}
},
}
2020-08-13 15:18:26 +08:00
< / script >
< style >
.slide-fade-enter-active {
2021-09-04 19:29:28 +08:00
transition: all 0.3s ease;
2020-08-13 15:18:26 +08:00
}
.slide-fade-leave-active {
2021-09-04 19:29:28 +08:00
transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
2020-08-13 15:18:26 +08:00
}
2021-09-04 19:29:28 +08:00
.slide-fade-enter,
.expand-fade-leave-active {
2020-08-13 15:18:26 +08:00
margin-left: 20px;
opacity: 0;
}
< / style >
```
2021-09-04 19:29:28 +08:00
:::
2020-08-13 15:18:26 +08:00
:::tip
The `router-link` component is not supported in tooltip, please use `vm.$router.push` .
Disabled form elements are not supported for Tooltip, more information can be found at [MDN ](https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter ). You need to wrap the disabled form element with a container element for Tooltip to work.
:::
### Attributes
2021-09-04 19:29:28 +08:00
| Attribute | Description | Type | Accepted Values | Default |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| append-to-body | whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` | boolean | — | true |
| effect | Tooltip theme | string | dark/light | dark |
| content | display content, can be overridden by `slot#content` | String | — | — |
| placement | position of Tooltip | string | top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end | bottom |
| model-value / v-model | visibility of Tooltip | boolean | — | false |
| disabled | whether Tooltip is disabled | boolean | — | false |
| offset | offset of the Tooltip | number | — | 0 |
| transition | animation name | string | — | el-fade-in-linear |
| visible-arrow | whether an arrow is displayed. For more information, check [Vue-popper ](https://github.com/element-component/vue-popper ) page | boolean | — | true |
| popper-options | [popper.js ](https://popper.js.org/documentation.html ) parameters | Object | refer to [popper.js ](https://popper.js.org/documentation.html ) doc | `{ boundariesElement: 'body', gpuAcceleration: false }` |
| show-after | delay of appearance, in millisecond | number | — | 0 |
| hide-after | delay of disappear, in millisecond | number | — | 0 |
| auto-close | timeout in milliseconds to hide tooltip | number | — | 0 |
| manual | whether to control Tooltip manually. `mouseenter` and `mouseleave` won't have effects if set to `true` | boolean | — | false |
| popper-class | custom class name for Tooltip's popper | string | — | — |
| enterable | whether the mouse can enter the tooltip | Boolean | — | true |
| tabindex | [tabindex ](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex ) of Tooltip | number | — | 0 |