CSS学习笔记四


前言

继续学习CSS


三、过渡与转换

3.1. CSS3转换

CSS3转换 ​(transition)​ 允许我们在限定的时间内从一个​属性值​​转换到​另一个​属性值​。

​transition-property​ - 指定要转换的​属性​
​transition-duration​ - 指定转换发生的​持续时间​
​transition-timing-function​ - 指定转换的​速度​在其持续时间内如何变化
​transition-delay​ - 指定过渡效果的​延迟​(以秒为单位)

过渡效果​可以应用于各种CSS属性,包括​背景颜色​,​宽度​,​高度​,​不透明度​等等。

  1. transition-property​ 属性

规定应用​过渡效果​的 ​CSS 属性​的​名称​。(当指定的 CSS 属性改变时,过渡效果将开始)。

语法: transition-property: none |all |property;

​none​:​ 没有属性​会获得过渡效果
​all ​: ​所有属性​都将获得过渡效果
​property ​: 定义应用过渡效果的 CSS​ 属性名称列表​,列表以​逗号​分隔

当光标被移出元素时,它将逐渐变回原来的样式。

  1. transition-timing-function属性

ransition-timing-function​属性指定过渡效果的​速度曲线​。此属性允许一个过渡效果,以改变其持续时间的​速度

​ease ​- 动画开始缓慢,然后加速(默认值)。
​ease-in​ - 缓步开始,然后加速,突然停止。
​ease-out ​- 快速启动,但减速停止。
​ease-in-out​ - 类似于ease,但是加速和减速时会有稍微的不同。
​linear ​- 匀速转换。

cubic-bezier() 函数定义了一个贝塞尔曲线(Cubic Bezier)。

贝塞尔曲线曲线由四个点 ​P0,P1,P2 和 P3​ 定义。P0 和 P3
是曲线的起点和终点。P0是(0,0)并且表示初始时间和初始状态,P3是(1,1)并且表示最终时间和最终状态。

nam

3.2. transform:rotate()

CSS3中​transform(旋转)​允许您翻转,​旋转,缩放和倾斜元素​。

​transform(旋转)​是一种让元素更改形状,大小和位置的效果。
​rotate()​ 方法​旋转​当前的绘图。

rotate()​方法根据给定的deg顺时针或逆时针旋转一个元素。
​负值​将导致​逆时针​旋转。

3.3. transform-origin属性

​transform-origin​属性允许您更改​已转换元素​的位置。 该属性的默认值是50%50%,对应于元素的中间。

注意:该属性只有在设置了​transform​属性的时候才起作用;如果在不设置的情况下,元素的​基点​默认的是其​中心位置​。

3.4. translate()和skew()方法

translate()​方法从当前位置移动一个元素(根据给定的x轴和y轴的参数)。 ​正值​会将元素​向下​推到其默认位置的​右侧​,而​负值​则会将元素​向上​并拖至其默认位置的​左侧​。

在下面的例子中,div元素向右移动100px,向下移动80px:

div {
   padding: 50px;
   position: absolute;
   background-color: green;
   transform:translate(100px, 80px);
}

​skew()​通过给元素设置​X轴和Y轴​的​倾斜角度值​来实现​倾斜​。

3.5. scale()函数和多重转换

scale()​方法根据已设定的​宽度​和​高度​参数来增加或减少元素的大小。 ​1​代表​原始尺寸​,​2​代表原始尺寸的​两倍​,依此类推。

我们在水平和垂直方向上将第一个div减小0.6倍:

div.first {
   width: 200px;
   height: 100px;
   background-color: red;
   transform: scale(0.6, 0.6);
   color:white;

一次可以使用​多个转换​。 ​同时旋转​和​缩放元素的大小​就是一个例子。
对元素应用多个变换很简单, 只是用​空格​分开它们

div{
    width: 200px;
    height: 100px;
    background-color: red;
    transform: rotate(35deg) translate(120px);
    color:white;
}

3.6. CSS3动画

动画让一个元素从一种风格逐渐转变为另一种风格。您可以根据需要更改任意数量的CSS属性。关键帧将保存元素在特定时间的样式

@keyframes规则
当您在@keyframes规则中指定CSS样式时,动画将在某些时间从当前样式逐渐变为新样式。要使动画起作用,必须将动画绑定到元素。

以下示例将更改元素的背景颜色三次:动画完成50%,完成70%,动画完成100%时。

div {
    width: 100px;
    height: 100px;
    background-color: red;
    animation-name: 看方法;
    animation-duration: 1s;
}
@keyframes w3cschool {
    0%  {background-color: red;}
    50%  {background-color: yellow;}
    70%  {background-color: blue;}
    100% {background-color: green;}
}

作为使用​百分比​的替代方法,您可以使用​from和to​关键字,其中:
​from​ - 为0%的​起始点​
​to​ - 为100%的​结束点​

animation-name 属性指定要用于元素的动画。 animation-duration 属性指定所选动画的持续时间。

(animation-timing-function)​动画定时功能指定动画的​速度曲线​。 它可以有以下值:

​ease​ - 指定一个慢启动的动画,然后快速,然后慢慢结束(默认值)
​linear​ - 从开始到结束指定一个具有相同速度的动画
​ease-in ​- 指定一个慢启动的动画
​ease-out ​- 指定一个缓慢结束的动画
​ease-in-out ​- 指定一个缓慢的开始和结束的动画
​cubic-bezier(n,n,n,n)​ - 让你在一个cubic-bezier函数中定义你自己的值,可能的值是从 ​0 到 1 ​的数值。

animation-delay​ 属性定义动画​何时开始

animation-iteration-count​属性确定​动画重复​的​次数​。为了使动画​永久重复​,只需使用​无限值:

animation-iteration-count: infinite;

animation-direction​属性指定如何应用​关键帧​,值可以设置为:

normal ​- 默认值,这意味着它从0%到100%前进。
​reverse​ - 从100%到0%的相反方向播放关键帧
​alternate​ - 动画首先向前,然后向后,然后向前。
​alternate-reverse ​- 动画首先倒退,然后前进,然后倒退。

合并(请注意​简写后​每一个属性的​顺序​,​不能改变​,否则将无法生效)

div {
   animation-name: colorchange;
   animation-duration: 4s;
   animation-timing-function: ease-in;
   animation-delay: 2s;
   animation-iteration-count: infinite;
   animation-direction: reverse;
}

可以简写上面的属性设置成同一个属性,将上面的所有效果进行合并。

div { 
   animation: colorchange 4s ease-in 2s infinite reverse;
}

3.7. 3D转换

三维变换​使用基于二维变换的相同属性,如果您熟悉二维变换,你们发现3D变形的功能和2D变换的功能相当类似。CSS3中的3D变换主要包括以下几种功能函数:

除了​x轴​和​y轴​,​3D转换​还引入了​Z轴​,这使得3D操作成为可能。

3D转换与2D转换非常相似:

在CSS3中3D位移主要包括两种函数​translateZ()​和​translate3d()​。translate3d()函数使一个元素在三维空间移动。这种变形的特点是,使用三维向量的坐标定义元素在每个方向移动多少。

​X​:从左向右移动
​Y​:从上向下移动
​Z​:以方框中心为原点,变大
通过rotateX(), rotateY() 和 rotateZ()函数以给定的​度数(deg)​围绕相应的​轴​旋转​3D空​间中的元素。

div.X {
   transform: rotateX(160deg);
}
div.Y {
   transform: rotateY(160deg);
}
div.Z {
   transform: rotateZ(160deg);
}

3D转换​方法允许您使用任何​CSS长度单位​(px,em,%等)

​translateX ​- 水平移动元素
​translateY​ - 垂直移动
​translateZ​ - 移入或移出屏幕。( 正值将元素移入,负值移出)

translate3d()​方法允许我们按照以下顺序同时传递x,y和z偏移量:

.first {
   transform: translate3d(-25px, 4em, 15px);
}

像translate3d()方法一样,还有scale3d()和rotate3d(),它们适用于3D中的缩放和旋转元素。

​perspective​定义了如何渲染3D场景的​深度​。 将视角看作从观众到物体的​距离​。 值越大,距离越远,视觉效果越不强烈,子元素所呈现的边缘越小。

在为一个元素定义​perspective​属性时,它是获取perspective视图的子元素,而不是元素本身。

四、过滤器

CSS过滤器属性允许您将模糊或颜色变换等图形效果应用于元素。
过滤器通常用于调整图像、背景和边框的渲染。
如果要为同一图像设置不同的样式,则图像过滤非常有用。

您可以只上载一个图像,然后使用“过滤器”属性定义视觉效果,而不是将多个图像上载到网站。

过滤函数包涵:
blur(),
brightness(),
contrast(),
drop-shadow(),
grayscale(),
hue-rotate(),
invert(),
opacity(),
saturate()
sepia().

drop-shadow()函数

drop-shadow(w h b c)创建阴影效果,该效果通过模糊b和颜色c延伸到宽度w和高度h的图像之外。w、 h和b是以像素为单位的值

.dropshadow {
filter: drop-shadow(5px 9px 2px blue);}

4.1. 过滤函数

  1. grayscale()函数

灰度函数(grayscale Function)将图像转换为grayscale 。唯一的参数定义转换的比例。
0%灰度(grayscale )是原始图像,而100%使图像完全灰度(grayscale )化。 任何负值都会使图像保持不变。

  1. sepia()函数

sepia函数将图像转换为sepia。
这类似于使用grayscale ,但具有红棕色(reddish-brown )色调。
0%的sepia为原始图像,而100%的sepia将图像完全转换为乌贼墨(sepia)

  1. saturate()函数

saturate函数可以控制图像的颜色饱和度。唯一的参数确定应用于图像的饱和度比例。
该参数可以是百分比值或数字。
0%创建完全不饱和的图像(灰度),而100%是原本的图像。

saturate()函数是可以接受超过100%的值。

  1. hue-rotate()函数

hue-rotate()函数将色调旋转(基于颜色圈)应用于图像。该函数将旋转角度作为其参数。角度值定义了颜色圆周围的度数,输入样本将被调整。

  1. invert()函数

invert()函数反转图像的颜色,使暗区域变亮,使亮区域变暗。该函数将转换的比例作为其参数。该参数可以是百分比值或数字。

0%的反转会使图像保持不变,而100%的反转会创建一个与原本图片相同的完全反转的图像。该规范允许值超过100%,但这不会对图像产生进一步的影响。

4.2. opacity与brightness

opacity()函数设置图像的不透明度以更改其透明度。0%不透明度创建完全透明的图像,而100%是原始图像。

brightness()函数可调整图像的亮度,使其看起来更亮或更暗。

amount参数确定图像的亮度级别。该参数可以采用百分比值或数字。
值为0%会导致图像完全为黑色。值为100%时,图像将保持不变。
任何超过100%的量都会产生更亮的图像。 任何负值都会使图像变黑。

contrast()函数调整图像的对比度。amount参数可以采用百分比值或数字

模糊(blur)函数将模糊效果应用于图像。

模糊函数只有一个参数radius,它定义屏幕上有多少像素相互混合。(值越大,模糊程度越高)。

该参数指定为CSS长度,但不接受百分比值。如果未提供任何参数,则使用默认值0,使图像保持不变。

4.3. 使用多个CSS过滤器

通过用空格分隔多个CSS过滤器,它们可以一起使用。

以下代码演示了模糊(blur()函数)和色调旋转(hue-rotate()函数)函数的使用:

.filtered {
filter: blur(5px) hue-rotate( 180deg);}

总结

将CSS样式表的知识快速过了一遍,之后就是通过不断实战来加深印象了

醉翁之意不在酒,而在乎山水之间也。

–2023-10-28 筑基篇

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星石传说

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

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

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

打赏作者

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

抵扣说明:

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

余额充值