小别致真东西
文章77
标签31
分类26
记一个伪元素的骚操作

记一个伪元素的骚操作

用伪元素实现气泡框

介绍

    在项目开发中本来自己负责的基础组件库里面的 Tooltip 组件没有达到预期的效果(有八阿哥)…
    后来想到其实可以用伪元素实现一个类似的气泡弹窗,但是又想到一个问题:我每个元素的气泡内容不一样这尼玛怎么填进去呢?
    于是乎,查文档、还真在文档里让我发现了一点有用的东西,通过 attr() CSS表达式和一个自定义数据属性 data-descr 创建一个纯CSS, 内容提示气泡如下:

相关属性: 自定义属性 data-desrc 表达式 attr()

兼容性: 还不错哦!!

各种链接如下:

相关代码

<h1>伪元素实现气泡提示</h1>
<p>
<span class="tooltip" data-descr="伪元素">伪元素</span>
<span class="tooltip" data-descr="实现">实现</span>
<span class="tooltip" data-descr="气泡提示">气泡提示</span>
</p>
body {
font-family: sans-serif;
}

.tooltip {
position: relative;
display: inline-block;
cursor: pointer;
}

.tooltip[data-descr]:hover::after {
content: attr(data-descr);
position: absolute;
top: -24px;
left: 0;
min-width: 60px;
max-width: 100%;
height: 24px;
padding: 0 8px;
box-sizing: border-box;
line-height: 24px;
font-size: 10px;
text-align: left;
color: #fff;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
border-radius: 4px;
background: #202020;
}

.tooltip[data-descr]:hover::before {
content: "";
position: absolute;
top: 0px;
left: 15px;
padding: 1px;
box-sizing: border-box;
border: 5px solid #202020;
width: 0;
height: 0;
border-left-color: transparent;
border-right-color: transparent;
border-bottom-color: transparent;
z-index: 99;
}