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

为什么Safari浏览器中CSS hover状态无法正常触发?

问题原因

这是CSS选择器解析规则和Safari兼容性共同导致的问题:
CSS规范明确要求:如果逗号分隔的选择器列表中存在任意一个浏览器无法识别的伪类/选择器,整个规则块都会被浏览器直接丢弃。
你的代码中触发hover样式的规则写为:

.wistia:hover button.embed-youtube__play,
.wistia button.embed-youtube__play:focus-visible {
  background: url("https://nextiva.com/assets/svg/play-button.svg") no-repeat center center, #005fec;
  background-size: 40%;
  background-position: 55%;
}

15.4版本以下的Safari并不原生支持:focus-visible伪类,即便你引入了JS polyfill,也只能实现focus-visible的交互逻辑,无法让浏览器识别原生的:focus-visibleCSS选择器,因此Safari会直接丢弃整个规则块,连带:hover的样式也无法生效。而Chrome原生支持:focus-visible,所以规则可以正常生效。

修复方案

把两个选择器拆分为独立的CSS规则块即可,避免相互影响:

/* 单独写hover规则,不受focus-visible兼容性影响 */
.wistia:hover button.embed-youtube__play {
  background: url("https://nextiva.com/assets/svg/play-button.svg") no-repeat center center, #005fec;
  background-size: 40%;
  background-position: 55%;
}
/* 单独写focus-visible规则,低版本Safari不识别只会丢弃这一块,不影响其他样式 */
.wistia button.embed-youtube__play:focus-visible {
  background: url("https://nextiva.com/assets/svg/play-button.svg") no-repeat center center, #005fec;
  background-size: 40%;
  background-position: 55%;
}

如果还存在偶发的hover不触发问题,可以给.wistia加上transform: translateZ(0);触发GPU渲染,避免Safari层叠上下文识别异常,同时统一transition的前缀写法:

.wistia {
  position: relative;
  display: block;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  width: 800px;
  height: 600px;
  margin-top: 50px;
  border: 1px solid red;
  /* 新增:触发GPU渲染 */
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}
.wistia button.embed-youtube__play {
  background: url("https://nextiva.com/assets/svg/play-button.svg") no-repeat center center, rgba(33, 33, 33, 0.8);
  background-size: 40%;
  background-position: 55%;
  border: 0;
  border-radius: 50%;
  position: absolute;
  /* 修改:统一transition前缀 */
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
  width: 10%;
  height: 13%;
  cursor: pointer;
  z-index: 10;
  display: flex;
  justify-content: center;
  align-items: center;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:36:03