修复后 Safari 背景颜色过渡为透明。漏洞?

Posted

技术标签:

【中文标题】修复后 Safari 背景颜色过渡为透明。漏洞?【英文标题】:Safari background-color transition to transparent when fixed. Bug? 【发布时间】:2019-09-24 06:37:54 【问题描述】:

我在 Safari 12.1 (14607.1.40.1.4) 中将背景颜色转换为透明时遇到问题。

代码不会将背景转换为透明。相反,它在悬停时闪烁或什么都不做。

过渡似乎在 Chrome 和 Firefox 中运行良好。如果

div 为空 OR Position:fixed 被移除 或目标背景颜色设置为一种颜色(虽然 rgba 透明度不起作用)
<!DOCTYPE html>
<html>
    <head>
        <style>
        body
            background-color:white;
        
        .box
            width:200px;
            height:100px;
            background-color:lightblue;
            transition:1s all;
            position:fixed;
        
        .box:hover
            background-color:transparent;
        
        </style>
    </head>
    <body>
        <div class="box">test</div>
    </body>
</html>

我希望能够将固定的 div 背景颜色转换为透明。有没有办法让它工作?

【问题讨论】:

我有 Safari V. 11.1,当我把它放在 JS Fiddle 中时它似乎工作正常。 jsfiddle.net/f0vkrb7h 刚刚在 Browserstack 中测试到 Safari V.12 并且仍然可以正常工作。很抱歉,如果不复制问题就无能为力了。但我会说使用透明可能是它.. 尝试使用 rgba,因为它可以得到尽可能具体的。但我确实看到你说那不起作用。 感谢您的测试。也许它与我的设置有关(构建/操作系统/图形卡)...... 【参考方案1】:

我刚刚遇到了同样的 Safari 错误,对此感到非常沮丧......

position: fixedbackground: transparent 在 Safari 上似乎不能很好地协同工作。

我最终在我的“固定”div 中添加了一个 div,并将其用于我的背景颜色过渡。

【讨论】:

我最终采用了类似的解决方案。感谢您的确认。 您在哪里找到有关“位置:固定和背景:透明在 Safari 上不能很好地协同工作”的信息。能否请您发布该资源的链接? 我没有找到描述该问题的官方资源。我当时正在创建一个简单的单页网站,它有一个固定的标题,将背景从纯色更改为滚动时不透明的颜色。它可以按预期在每个浏览器上运行,但不能在 Safari 上运行。在 Safari 而不是透明背景上,我得到了没有不透明度的白色。当我将背景样式应用于固定元素的内部 div 时,它按预期工作。

以上是关于修复后 Safari 背景颜色过渡为透明。漏洞?的主要内容,如果未能解决你的问题,请参考以下文章

怎么设计css网页背景颜色过渡?

如何将不透明度设置为 div 的背景颜色? [复制]

为啥 ViewPager 向左滚动时颜色过渡动画错误?

css 过渡不透明度淡入淡出背景

设置小部件背景的透明度

如何在反应组件上进行背景颜色过渡?