css - 元素在 Safari、Chrome 和 FF 中获得蓝色背景是可以的

标签 css css-transitions

我有一个按钮可以打开和关闭侧边导航,它是通过过渡动画的 CSS。它在 Chrome 和 Firefox 中完美运行,在 Safari 上也能正常运行,但是按钮的蓝色背景没有包含在 CSS 规则中,所以它看起来像这样:

enter image description here

而不是这个:

enter image description here

我一直在努力寻找一个解决方案,包括 backface-visibility: hiddentransform: translateZ(0) 甚至将颜色更改为 RGBA,但那些 hacks什么都没做。

bug可以看出是这一半developed website .

最佳答案

我找到了解决方案。

我注意到,如果我在 #nav 上使用 Safari 的 Web 检查器更改 CSS 规则,例如 heightwidthtranslate -toggler#nav-toggler.open 元素将圆重新绘制为其指定的颜色。

所以我将 transform: translateZ(1px); 添加到 #nav-toggler.open 以强制重绘并解决了问题。

#nav-toggler.open {
left: 240px;
transform: translateZ(1); /* added to solve repaint in Safari */
-webkit-transition: .5s ease-in-out;
   -moz-transition: .5s ease-in-out;
     -o-transition: .5s ease-in-out;
        transition: .5s ease-in-out;
}

我最初添加了 width:50.00001px,但即使它只有 0.00001 像素,它也让我很不安。

关于css - 元素在 Safari、Chrome 和 FF 中获得蓝色背景是可以的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176169/

相关文章:

jquery - 是否可以选择 <a> 标签内的文本?

html - 使用 css/html 悬停在链接上的背景图片

html - 转换不适用于 block 跨度元素

html - 如何在 <div> 元素 css 中垂直对齐文本?

html - 使用 css 过渡更改导航栏颜色

javascript - 从屏幕外滑入移动菜单 - 溢出问题

css - 不能使用带有文本或背景的主题颜色

javascript - jQuery - CSS 转换完成后运行函数

jquery - CSS Transitions - 在线观看时帧率降低

CSS 过渡语法