You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Safari中按钮Hover时Tooltip位置异常问题求助

Safari中按钮伪元素Tooltip失效的修复方案

核心问题

Safari 对原生 <button> 元素的伪元素(::before/::after)支持存在兼容性限制——按钮作为表单替换元素,其伪元素常无法正常渲染或定位,这就是你添加 -webkit- 前缀后仍无效的原因。

修复思路

把Tooltip的伪元素挂载到按钮的父容器 .buttonhover 上,利用父容器的相对定位控制位置,通过父容器的hover事件触发显示,绕过Safari对按钮伪元素的限制。

修改后的完整代码

HTML(仅调整data属性到父容器,不改变结构)

<div class="buttonhover" data-button="order your copy now">
  <button class="button">ORDER YOUR COPY NOW</button>
</div>

CSS

.buttonhover {
    position: relative;
    margin-top: 5em;
    margin-left: 5em;
}
.button{
   padding: 0.5em 1em;
   background-color: coral;
   border: none;
   border-radius: 0.3em;
}
/* 伪元素移到父容器 */
.buttonhover::before,
.buttonhover::after {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    transition: all ease 0.2s;
    -webkit-transition: all ease 0.2s; /* 兼容旧版Safari */
}
/* Tooltip箭头 */
.buttonhover::before {
    content: "";
    border-width: 0 8px 10px 8px;
    border-style: solid;
    border-color: transparent transparent rgba(0, 0, 0, 0.8) transparent;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
}
/* Tooltip文本框 */
.buttonhover::after {
    content: attr(data-button);
    width: 10em;
    color: white;
    background-color: rgba(0, 0, 0, 0.8);
    padding: 0.5em 0.7em;
    border-radius: 0.4em;
    bottom: calc(100% + 18px);
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    text-align: center;
}
/* hover时显示 */
.buttonhover:hover::before,
.buttonhover:hover::after {
    opacity: 1;
}

备选方案(不修改HTML结构)

如果不想调整data属性位置,给.button添加position: relative,同时重新计算伪元素的transform偏移值,但这种方法在部分旧版Safari中仍可能出现兼容性问题:

.button{
   /* 原有样式 */
   position: relative; /* 新增 */
}
.button::before {
    /* 原有样式 */
    transform: translate(250%, -180%); /* 调整偏移适配相对定位的按钮 */
    -webkit-transform: translate(250%, -180%);
}
.button::after {
    /* 原有样式 */
    transform: translate(-50%, -180%); /* 调整偏移 */
    -webkit-transform: translate(-50%, -180%);
}

内容的提问来源于stack exchange,提问作者ramishvili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 05:45:01