如何最好地将 CSS3 过渡设置为无?

Posted

技术标签:

【中文标题】如何最好地将 CSS3 过渡设置为无?【英文标题】:How to best set a CSS3 transition to none? 【发布时间】:2012-08-04 15:06:23 【问题描述】:

如何使 CSS 过渡在媒体查询或任何其他情况下不起作用?例如:

@media (min-width: 200px) 
    element 
        transition: width 1s;
       


@media (min-width: 600px) 
    element 
        transition: none; // SET TO NO TRANSITION
       

【问题讨论】:

【参考方案1】:

transition-duration 设置为 0s 甚至比将 transition-property 设置为 none 更好。。 p>

这是跨浏览器代码:

-webkit-transition-duration: 0s;
-moz-transition-duration: 0s;
-o-transition-duration: 0s;
transition-duration: 0s;

为什么这样更好?因为默认情况下,符合标准的浏览器(例如 Firefox)将每个元素的 transition-property 设置为 all。他们还将 transition-duration 设置为 0s。因此,通过将 transition-duration 设置为 0s,您可以最接近地匹配浏览器定义没有过渡的元素的方式。

transition-duration 设置为默认 0s 会使 transition-property 变得无关紧要。

【讨论】:

【参考方案2】:

您可以将 transition-property 设置为 none。这样,将不会应用任何过渡效果。

像这样:

-webkit-transition-property: none;
-moz-transition-property: none;
-o-transition-property: none;
transition-property: none;

【讨论】:

你不能设置transition: none(如果需要,加上前缀)? transition: unset 怎么样?这不是类似于将属性标记为无吗? @tomekwi 你可以,但这是一个 速记属性 必须由解释器扩展。设置transition-property 不需要那种浪费的扩展。【参考方案3】:
transition: width 0s

应该做的伎俩 - 因为它基本上是说有一个过渡,但 0 太快了,看不到它!

【讨论】:

不是真正的解决方案,如果您的过渡正在缩放元素

以上是关于如何最好地将 CSS3 过渡设置为无?的主要内容,如果未能解决你的问题,请参考以下文章

css如何实现颜色的过渡效果

悬停时不透明度的 CSS3 过渡不起作用

如何触发css3过渡动画

使用 css3 进行图像替换和过渡?

jQuery .css() 中的 CSS3 过渡

如何正确地将多个片段添加到片段过渡?