返回
Featured image of post 悬浮出现箭头盒子的写法

悬浮出现箭头盒子的写法

最常见的悬浮框写法学习,遇见主题变色则要考虑断层线条,推荐使用after伪类编写

模板部分

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<template>
<!--断层-->
      <div class="tooltip-box">
      <div class="tooltip-arrow"></div>
        点击复制链接
      </div>
<!--伪类写法-->
      <div class="copy-tooltip-box">
        点击复制链接
      </div>
</template>

Css处理部分

断层写法例子

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
.tooltip-arrow {
  position: absolute;     /* 👉 基于父容器(.tooltip-box)定位 */
  bottom: -10px;          /* 👉 位于提示框下方 10px 处(负值向上移动) */
  left: 50%;              /* 👉 水平居中 */
  transform: translateX(-50%);  /* 👉 微调水平位置 */
  width: 0;               /* 👉 宽度为 0,通过边框生成三角形 */
  height: 0;              /* 👉 高度为 0 */
  border-left: 8px solid transparent;  /* 👉 左侧透明边框 */
  border-right: 8px solid transparent; /* 👉 右侧透明边框 */
  border-top: 10px solid white;        /* 👉 顶部实色边框,形成箭头 */
}

使用伪类防止断层写法

  • 推荐方法,防止黑色透明箭头和盒子交接处出现断层深色线条
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 正常的样例盒子
.copy-tooltip-box {
  bottom: calc(100% + 14px);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  background-color: #323233D9; /* 黑色主题 */
  width: 88px;
  height: 28px;
  color: #fff;
}
// 伪类实现方法
.copy-tooltip-box:after {
  content: "";
  position: absolute;
  top: 100%;
  /* 箭头位于提示框底部 */
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #323233D9;
}
使用 Hugo 构建
主题 StackJimmy 设计