100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > elementUI tooltip箭头样式(表格自定义)

elementUI tooltip箭头样式(表格自定义)

时间:2021-10-13 03:16:02

相关推荐

elementUI tooltip箭头样式(表格自定义)

需求:修改 table 中 tooltip 的样式及位置。

尝试:表格中 tooltip 默认是挂载到 body 中的,修改当前表格 tooltip 样式,全局都会受影响。

求解:自定义表格当前行的 tooltip。

自定义比较简单,直接上代码:

<el-table-columnprop="explanation"label="类型说明"width="160"><template slot-scope="{row}"><el-tooltip v-if="row.explanation && row.explanation.length > 10" popper-class="tableTypePopperClass" effect="light" :content="row.explanation" placement="bottom"><span ref="tableMemberType" class="typeClass">{{ row.explanation }}</span></el-tooltip><span v-else>{{row.explanation || "暂无数据"}}</span></template></el-table-column>

效果如下:

修改样式比较重要的一点在于为 tooltip 添加 popper-class 类,popper-class 的作用在于为 Tooltip 的 popper 添加类名,因为 tooltip 是挂载到body 中的,所以为当前 tooltip 添加 popper-class 类,是为了更方便的修改它。

修改样式重点在于 tooltip 弹出窗中顶部小箭头样式的修改,这一部分是通过伪类来实现的,所以需要修改 tooltip 自带的伪类的样式,如下:

.typeClass {display: inline-block;max-width: 150px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}.tableTypePopperClass {max-width: 500px;color: #333!important;line-height: 18px!important;border: 1px solid #EBEEF5!important;}// 箭头样式是通过两个样式叠加形成的,内部的三角形,及外部的边线,// 所以想要修改小三角的样式需要同时修改内三角及外边线的样式// 修改外边线的样式.tableTypePopperClass[x-placement^=bottom] .popper__arrow{border-bottom-color: #EBEEF5!important;}// 修改内三角的样式.tableTypePopperClass[x-placement^=bottom] .popper__arrow:after {border-bottom-color: #FFF!important;}// 修改tooltip 从顶部弹出时 箭头的样式.tableTypePopperClass[x-placement^=top] .popper__arrow{border-top-color: #EBEEF5!important;}.tableTypePopperClass[x-placement^=top] .popper__arrow:after {border-top-color: #FFF!important;}

^= 选择器

[attribute^=value] 选择器匹配属性值以指定值开头的每个元素。

解释:

在 tooltip 的 HTML 元素中placement 属性指代 popper 的弹出位置,修改从下方弹出的 popper 中的箭头的样式时,因为 placement 属性值为 bottom,所以找寻 x-placement 属性值以 bottom 开头的元素,即匹配 x-placement 属性值以 bottom开头的元素,其他原理相同。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。