css - 使用转换延迟的错误

标签 css css-transitions

我之前遇到过一些代码,发现它是基于 transition-delay 而不是应用于转换,如果它的属性是在转换本身之前设置的。我想知道这是错误还是预期的行为。

我做了一支小笔来展示我的意思的例子:https://codepen.io/itsharryfrancis/pen/pGBRBR

它本质上显示了以下之间的区别:

.test1 {
  .block {
    transition: background 1s;
    transition-delay: 1s;
  }
}

.test2 {
  .block {
    transition-delay: 1s;
    transition: background 1s;
  }
}

我猜这是不是因为 CSS 的级联特性?

最佳答案

所以您遇到的是速记属性的一个已知问题。

transition 在这种情况下是一个速记属性

我可以用 margin 的情况来解释

所以margin是margin-top、margin-right、margin-bottom和margin-left的简写

所以如果你这样做

margin-top: 20px;
margin : 10px;

margin 属性实际上会覆盖 margin-top;

在你的例子中,transition 覆盖了 transition-delay

你也可以在 mdn 上阅读 https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#Tricky_edge_cases .见案例编号1

关于css - 使用转换延迟的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54789882/

相关文章:

html - float 两个等于 100% 宽度的 div 标签将第二个 div 移动到新行

javascript - 使嵌入式视频使用所有可用的 HTML 元素宽度

css - 在 MS Edge 中的伪元素上进行 CSS 转换后,如何运行一些 javascript?

css - React CSS 翻译转换不起作用

css - 仅在 IE11/Edge 中的 rotate3d 上设置 Angular 动画

css - 在 W3schools 的点击示例中添加 "ripple"效果

css - 背景在内容末尾被切断

css - 将缩进 block 引用内的表格缩进删除到整个主体宽度

css - 网络工具包 : Flicker on CSS Transition with background image

javascript - CSS 过渡不会在卸载前触发