魔法世界 | CSS渐变和动画的魔法世界

你是否有过这样的经历,在网页设计中,想要实现一些非常酷炫的效果,比如颜色的平滑过渡、图标的动态变化等等。这时候,CSS渐变和动画就派上了用场。今天,我们就来一起探索这个神奇的领域吧!

渐变——色彩的流动

想象一下,夕阳下的天空,从橙色逐渐过渡到紫色,这就是渐变。在CSS中,我们用linear-gradient和radial-gradient来模拟这种自然的色彩流动。

1线性渐变

线性渐变是指颜色沿着一条直线发生变化,可以使用linear-gradient()函数来实现。

.box2 {
  width: 200px;
  height: 200px;
  background-image: linear-gradient(red,yellow);
}

线性渐变的开头,我们可以指定一个渐变的方向

to left

to right

to bottom

to top

deg deg表示度数

turn 表示圈

.box2 {
  width: 200px;
  height: 200px;
  background-image:        linear-gradient(to right,red,yellow);
}

渐变可以同时指定多个颜色,多个颜色默认情况下平均分布,也可以手动指定渐变的分布情况

.box2 {
  width: 200px;
  height: 200px;
  background-image: linear-gradient(red,yellow,green,pink,black,blue);
}

repeating-linear-gradient()可以平铺的线性渐变

.box2 {
  width: 200px;
  height: 200px;
  background-image: linear-gradient(red,yellow,green,pink,black,blue);
}

2径向渐变

radial-gradient() 径向渐变(放射性的效果)

默认情况下径向渐变的形状根据元素的形状来计算的

正方形 的径向渐变为圆形

长方形的径向渐变为椭圆形

我们也可以手动指定径向渐变的大小

circle 圆形

ellipse 椭圆

closest-side 近边

closest-corner 近角

farthest-side 远边

farthest-corner 远角

也可以指定渐变的位置

语法:radial-gradient(大小 at 位置, 颜色 位置 ,颜色 位置 ,颜色 位置)

位置:top right left center bottom

.box1{
  width: 300px;
  height: 300px;
  background-image: radial-gradient(farthest-corner at 100px 100px, red , #bfa)
}

动画——元素的舞蹈

CSS动画可以让元素移动、变形、过渡,就像跳舞一样。通过transition属性,我们可以控制这场舞蹈。

1过渡

通过过渡可以创建一些非常好的效果,提升用户的体验

transition-property:指定要执行过渡的属性

多个属性间使用逗号隔开,如果所有属性都需要过渡,则使用all关键字

大部分属性都支持过渡效果,注意过渡时必须是从一个有效数值向另外一个有效数值进行过渡

transition-property: height,width
transition-property: all

transition-duration:指定过渡效果的持续时间

时间单位:s 和ms 1s = 1000ms

transition-duration: 2s

transition-timing-function:过渡的时序函数,指定过渡的执行方式

ease:默认值,慢速开始,先加速,后减速

linear:匀速运动

ease-in:加速运动

ease-out:减速运动

ease-in-out:先加速,后减速

cubic-bezier():https://cubic-bezier.com

transition-timing-function: 
cubic-bezier(.43,-0.8,.95,.88);

steps():分步执行过渡效果,可以设置两个值

end:在时间结束时执行过渡

start:在时间开始时执行过渡

transition-delay:过渡效果的延迟,等待一段时间后在执行过渡

transition-delay: 2s

transirion可以同事设置过渡相关的所有属性,只有一个要求,如果要写延迟,则两个时间中第一个时持续时间,第二个延迟​​​​​​​

/* 第一个是持续时间,第二个是延迟 */
transition: 2s margin-left 1s cubic-bezier(.24, .95, .82, -0.88);

2关键帧

关键帧是指在一段时间内按照一定规律变化的多个状态,可以使用@keyframes规则来实现。​​​​​​​

@keyframes myfirst {
  from {background-color: red;}
  to {background-color: yellow;}
}
.box2 {
  animation-name: myfirst;
  animation-duration: 2s;
}
 

这会让.box2这个元素在2秒内按照`myfirst`关键帧指定的规律变化,从红色渐变到黄色。我们可以通过指定多个关键帧来实现更加复杂的变化效果。

结语

CSS渐变和动画是一个非常有趣、实用的领域,它可以让我们的设计更加生动、有趣。希望这篇文章能够帮助你更好地理解它们的使用方法,并且在实际工作中更加得心应手。

—END—

文字丨代码星辰阁

图片丨代码星辰阁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值