当前业务需求要使用 tooltips 提示语组件时,很多人第一时间是去找各种开源组件来使用,但其实实现一个提示语还是比较简单的,布局出来后自己可以自由封装,应用到各种场景,这里展示了一个完整的下三角布局的 tooltips 代码。当然,左三角、上三角、右三角的如法炮制。
废话不多说,先上 Demo
使用 css 3 clip 手把手自己撸一个 tooltips 提示语
html 代码,下面使用 BEM 风格 css 编写风格
<div class="popup"> <div class="popup__body"> <div class="popup__content">提示内容</div> <div class="popup__arrow-container"> <div class="popup__arrow"></div> </div> </div> </div>
css 代码,关键点是使用 clip 裁剪出三角形
.popup {
background: #fff;
z-index: 1100;
display: inline-block;
position: absolute;
max-width: 384px;
top: 50px;
left: 179.8px;
padding: 0;
outline: 0;
}
.popup__body {
border-color: #03a9f4;
border-width: 1px;
border-style: solid;
position: relative;
-webkit-box-shadow: 0 0 12px rgba(0, 0, 0, .6);
box-shadow: 0 0 12px rgba(0, 0, 0, .6);
-webkit-background-clip: padding;
background-clip: padding-box;
-webkit-border-radius: .3125em;
border-radius: .3125em;
}
.popup__content {
width: 150px;
padding: 10px;
position: relative;
word-break: break-all;
white-space: normal;
z-index: 1;
text-align: center;
}
.popup__arrow {
-webkit-box-shadow: 0 0 12px rgba(0, 0, 0, .6);
box-shadow: 0 0 12px rgba(0, 0, 0, .6);
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
position: absolute;
overflow: hidden;
box-sizing: border-box;
width: 28.284271247px;
height: 28.284271247px;
border-width: 1px;
border-style: solid;
border-color: #03a9f4;
left: -4.142135623px;
top: -14.142135623px;
background: #fff;
}
.popup__arrow-container {
width: 20px;
height: 20px;
position: absolute;
clip: rect(10px, 2000px, 1000px, -1000px); /* clip 裁剪出三角形 */
bottom: -9.99px;
z-index: 2;
left: 75px;
}