【问题标题】:MS Edge CSS transition flickeringMS Edge CSS 过渡闪烁
【发布时间】:2017-07-03 17:15:27
【问题描述】:

我注意到 MS Edge 中的 CSS 过渡存在一个奇怪的问题。

基本上,如果您有过渡,例如在悬停状态之间,但为这些悬停状态定义的样式在 CSS 级联中被覆盖,Edge 将在过渡期间切换到覆盖的样式,然后切换回来。

这里也很好地描述了这个问题: https://www.webmasterworld.com/css/4791912.htm

我还制作了一支笔来演示这个问题: http://codepen.io/powerbored/pen/OWqXRw

a {
  transition: all 2s ease-in;
  color: orange;
}

a div {
  color: lightblue;
  // displays in light blue in all browsers except during transitions in Edge
}

a:hover {
  color: red;
}

我知道 Edge 并不是一款出色的浏览器,但我真正想看到的是对这里实际发生的事情以及为什么会发生的解释。

【问题讨论】:

  • “我知道 Edge 并不是一款出色的浏览器”There are plenty of not-great browsers out there.
  • Edge 在很多方面都是一个非常很棒的浏览器。这些方法往往首先仅限于使用 Windows 10 的人...
  • @TylerH,有什么例子吗?我想喜欢 Edge,但它总是让我失望。
  • @AndrewLewis 这是目前最快、最轻的浏览器之一;它拥有最年轻的代码库(Brave 除外),这意味着开发人员的技术债务更少,它与扩展作者携手合作,让现有的 Chrome 或 Firefox 扩展在其中工作,它允许丰富的交互和在网页上直接绘图,其结果可以与其他人共享,等等。当然,如果您不使用这些功能,您可能不会在意它们的存在。
  • @AndrewLewis 您是否已向 Microsoft 提交了此错误或已在此处找到文件?

标签: css css-transitions microsoft-edge


【解决方案1】:

在 Microsoft Edge 中,transition-property: all 导致后代元素在过渡期间继承动画值,而不是无限期地保留其指定值。这似乎对 Microsoft Edge 的 CSS 转换实现非常特殊,甚至 Internet Explorer 也能正常运行,并且仅在 transition-propertyall 时才会发生 — 如果您仅指定需要转换的属性,Microsoft Edge 行为正确。

我只能告诉你这些。好吧,这显然是不正确的行为。

【讨论】:

  • 感谢您的回复,是的,指定转换属性是我采用的解决方案,因为transition-property: all 无论如何都非常令人震惊。发现这种行为简直就是一个“wtf...”的时刻,我很想看看其他人的想法。
  • 我在只选择“不透明度”属性时遇到了同样的错误事件
  • 同“过滤器”
猜你喜欢
  • 2018-05-14
  • 2019-05-06
  • 1970-01-01
  • 2015-08-05
  • 2021-02-14
  • 1970-01-01
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多