CSS(五)CSS动画-transition简介

本文介绍了CSS3中的transition属性,它允许元素从一种样式平滑过渡到另一种。内容涵盖了概念、语法、基本用法及浏览器兼容性,帮助理解CSS动画中的过渡效果。

这是一个系列的文章,你也可以查看其他文章:

0、CSS-预热篇

1、CSS(一)详解position

2、CSS(二)transform

3、CSS(三)flex布局(flex弹性布局详解)

4、CSS(四)详解Grid布局

5、CSS(五)CSS动画-transition简介

6、CSS(六)CSS动画-animation简介

7、CSS(七)两栏布局详解

一、概念

一个状态向另一个状态的过渡。

在CSS 3引入Transition(过渡)这个概念之前,CSS是没有时间轴的。也就是说,所有的状态变化,都是即时完成。(阮一峰)

二、语法

transition 属性是一个简写属性,用于设置四个过渡属性:

  • transition-property(规定设置过渡效果的 CSS 属性的名称。)
  • transition-duration(规定完成过渡效果需要多少秒或毫秒。)
  • transition-timing-function(规定速度效果的速度曲线。默认不是匀速的,而是逐渐放慢,这叫做ease。)
  • transition-delay(定义过渡效果何时开始。)
transition: property duration timing-function delay;

每个单属性转换都描述了应该应用于单个属性的转换(或特殊值allnone)。

这包括(部分注释来自腾讯云《css3过渡》):

  • 零或一个值,表示转换应适用的属性。 这可能是以下任何一种:
    • 关键字none
    • 关键字all
    • 命名 CSS 属性的 <custom-ident> (CSS数据类型表示作为任意用户定义的字符串的标识符。它是区分大小写的,并且在各种情况下禁止某些值以防止含糊不清。最常见的如width等属性)。
  • 零或一个 <single-transition-timing-function> 值表示要使用的过渡函数。(注:single-transition-timing-function其取值是一个三次方的贝塞尔曲线的值。
  • 零,一或两个 <time> 值。可以解析为时间的第一个值被分配给 transition-duration,并且可以解析为时间的第二个值被分配给transition-delay

标准语法(MDN)

<single-transition>#
where
<single-transition> = [ none | <single-transition-property> ] || <time> || <timing-function> || <time>

where
<single-transition-property> = all | <custom-ident>
<timing-function> = linear | <cubic-bezier-timing-function> | <step-timing-function>

where
<cubic-bezier-timing-function> = ease | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>)
<step-timing-function> = step-start | step-end | steps(<integer>[, <step-position>]?)

where
<step-position> = jump-start | jump-end | jump-none | jump-both | start | end


三、基本用法举例(改编自w3c)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 100px;
            height: 100px;
            background: yellow;
            transition: height 2s;
            -moz-transition: height 2s;
            /* Firefox 4 */
            -webkit-transition: height 2s;
            /* Safari and Chrome */
            -o-transition: height 2s;
            /* Opera */
        }
        div:hover {
            height: 300px;
        }
    </style>
</head>

<body>
    <div></div>
    <p>请把鼠标指针移动到蓝色的 div 元素上,就可以看到过渡效果。</p>
    <p><b>注释:</b>本例在 Internet Explorer 10-中无效。</p>
</body>
</html>

四、兼容性

Internet Explorer 10、Firefox、Opera 和 Chrome 支持 transition 属性。

Safari 支持替代的 -webkit-transition 属性。

注释:Internet Explorer 9 以及更早版本的浏览器不支持 transition 属性。

五、参考资料

1、腾讯云《css3过渡

2、阮一峰《CSS动画简介

3、w3cschool《CSS3 transition 属性

4、CSDN《transition

5、CSS3 Working Draft 《transition

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fullstack_lth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值