图片展示及动画效果

一.盒子阴影

css3中新加了盒子阴影,我们可以用box-shadow属性为盒子增加阴影

语法

box-shadow:h-shadow v-shadow blur spread color inset;
 /* 水平阴影位置 垂直阴影 模糊距离(虚实状况,数值越大越模糊) 阴影尺寸(阴影的大小) 内外阴影*/

在这里插入图片描述

注意:
1.默认的是外阴影,但是不可以写这个单词,否则会导致外阴影无效
2.盒子阴影是不占用空间,不会影响其他盒子的排列
3.前面两个必须写,后面的都可以省略

二.文字阴影

在css3中,我们可以使用text-shadow属性将阴影应用于文本。

语法

text-shadow:h-shadow v-shadow blur color

在这里插入图片描述

三.css3 过渡

过渡(transition)是css3中具有颠覆性的特征之一,我们可以在不使用flash动画或js的情况下,当元素从一种样式变为另一种样式时为元素添加效果。
过渡动画:从一个状态渐渐过渡到另一个状态
可以让我们的页面更加好看,动态感十足,虽然低版本的浏览器不支持,但是不会影响页面布局。

我们现在经常和:hover一起搭配使用。

语法

transition:要过渡的属性 花费时间 运动曲线 何时开始;

1.属性:想要变化的css属性,宽度高度 背景颜色 内外边距都可以,如果想要所有属性都过渡,那就直接写一个all就可以。
2.花费时间:单位是秒(必须写单位)比如:0.5s
3.运动曲线:默认是ease,可以省略
4.何时开始:单位是秒(必须写单位)可以设置延迟触发的时间,默认为0s(可以省略)
后面两个值可以省略
记忆口诀:谁做过渡给谁加

如果想要加多个属性,要用逗号进行分割

四.滤镜( 图片变模糊)

css3滤镜filter
filter css属性将模糊或颜色偏移等图形效果应用于元素

语法

filter:函数();例如:filter:blur(5px);  blur模糊处理 数值越大越模糊

calc函数
此函数可以让你在声明css属性值时执行一些计算
语法
width:calc(100%-80px);
括号里面可以使用±*/来计算

五.2d转换

转换(transform)是css3中具有颠覆性的特质之一,可以实现元素的位移,旋转,缩放等效果
转换可以简单理解为变形
·移动translate
·旋转rolate
·缩放scale

1.二维坐标系

2d转换是改变标签在二维平面位置和形状的一种技术
在这里插入图片描述

2.移动translate

2d移动是2d转换中的一种功能,可以改变元素在页面中的位置,类似定位。

a.语法

移动盒子的位置:定位,盒子外边距,2d转换
x就是x轴上移动位置,y就是y轴上移动位置,中间用逗号分割

transform:translate(x,y) ; 

如果只动x或者y可以分开写或者一个设为零translateX(n)

b.重点

1)定义2d转换中的移动,沿着x和y轴移动元素
2)translate最大优点:不会影响其他元素的位置
3)translate中的百分比单位是相对于自身元素的translate(移动盒子本身的宽度和高度)
4)对行内标签没有效果

3.旋转rotate

2d旋转是让元素在2维平面内顺时针或者逆时针旋转

a.语法

transform:rotate(度数)

b.重点

·rotate里面跟度数,单位是deg,比如rotate(45deg
·角度为正是为顺时针,为负时为逆时针
·默认旋转的中心点是元素的中心点

4.2d转换中心点transform-origin

我们可以设置元素转换的中心点

a.语法

transform-origin: x y;

b.语法

·注意后面xy要用空格隔开
·xy默认转换点是元素的中心点(50% 50%)
·还可以给xy设置像素或者方位名词(top bottom left right center)

5.缩放scale

缩放,顾名思义,可以放大和缩小,只要给元素添加上了这个属性就可以控制它放大还是缩小。

a.语法

transform:scale(x,y);

b.注意

·注意其中的xy要用逗号分割
·transform:scale(1,1);宽高都放大一倍,相当于没有放大。
·transform:scale(2,2);宽和高都放大了两倍
·transform:scale(2);只写一个参数表示第二个参数和第一个是一样的。
·transform:scale(0.5);缩小
·sacle缩放的最大优势是:可以设置转换中心点的缩放,默认以中心点缩放,而且不会影响其他的盒子

6.2d转换的综合性写法

注意

a.同时使用多个转换,其格式为:transform:tranlate() rotate() scake()
b.其顺序会影响转变的效果(先旋转会改变坐标轴的方向)
3.当我们同时有位移和其他属性的时候,记得将位移放在最前面

2d转换总结

1.转换transform我们简单理解就是变形有2d和3d
2.我们暂且学了三个,为位移,旋转和缩放
3.2d移动translate(x,y) 最大优势是不影响其他盒子,里面的参数要用%,是相对于自身的高度和宽度计算的
4.可以分开写比如translateX(x)和translateY(y)
5.2d旋转rotate(度数)可以实现旋转元素,度数单位为deg
6.2d缩放scale(x,y) 里面的参数是数字,不跟单位,可以是小数,最大的优势是不会影响其他的盒子。
7.设置转换中心点transform-origin:x,y;参数可以是百分比,像素或者是方位名词
8.当我们同时有位移和其他属性的时候,记得将位移放在最前面

六.动画

动画(animation)是css3中具有颠覆性的特征之一,可以通过设置多个节点来精确的控制一个或者一组动画,常用来实现复杂的动画效果

相比较过渡,动画可以实现更多的变化,更多控制,连续自动播放等

1.动画的基本使用

制作动画分为两步:
a.先定义动画
b.在使用(调用)动画

1)先用keyframes定义动画(类似定义类选择器)

@keyframes 动画名称{
    0%{
        width:100px;
    }
    100%{
        width:200px;
    }
}

动画序列

·0%是动画的开始,100%是动画的完成,这样的规则就是动画序列
·在@keyframes中规定某项css样式,就能创造有当前样式逐渐改为新样式的动画效果
·动画是元素从一种个样式逐渐改变为另一种样式的效果,可以改变任意多样式,任意多次数
·请用百分比来规定变化发生的时间,或者用关键词“from”和“to”,等同于“0%”和“100%”

2.元素使用动画

div{
    width:200px;
    height:200px;
    background:aqua;
    margin:100px auto;
    <!-- 调用动画 -->
    animation-name:动画名称;
    <!-- 持续时间 -->
    animation-duration:持续时间;
}

3.动画的常用属性

在这里插入图片描述

动画简写属性

animation: 动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束的状态;

animation:myfirst 5s linear(匀速) 2s infinite (反复播放)alternate(反方向播放);

· 前两个属性必须写
· 简写属性里面不包含animation-play-state
· 暂停动画:animation-play-state: paused; 经常和鼠标经过等其他配合使用
· 想要动画走回去,而不是直接跳回:animation-direction: alternate
· 盒子动画结束后,停在结束位置:animation-fill-mode: forwards

4.速度曲线细节

animation-timing-function:规定动画的速度曲线,默认是ease
在这里插入图片描述

steps()就是分几步完成动画,有了他就不要再写easw或者liner了,像打字机一样一顿一顿的

    white-space: nowrap;
            /* 让文字强制一行内显示 */

七.3d转换

我们生活的环境是3d的,照片是3d物体在2d平面呈现的例子

特点

·近大远小
·物体后面遮挡不可见
当我们在网页上创建3d效果时参照这些特点就可以产出3d效果

1.三维坐标系

三维坐标系是指立体空间,立体空间是由三个轴共同组成的
·x轴:水平向右 注意:x右边是正值,左边是负值。
·y轴:垂直向下 注意:y下面是负值,上面是正值
·z轴:垂直屏幕 注意:往外面的正值,往里面的负值 (物体越大z值越大)
在这里插入图片描述

2.3d移动 translate3d

3d移动就是在2d移动的基础上多加了一个可移动的z方向
translateZ一般要用px单位

<!-- 3d移动简写 -->
transform:translate3d(100px,100px,100px);

这种情况x,y不可以省略,只能写0

3.透视prespective

在2d平面产生近大远小的视觉立体,但是只是效果二维的
·如果想要在网页上产生3d效果需要透视(理解成3d物体投影在2d平面内)
·模拟人类的视觉位置,可认为安排一只眼睛去看
·透视我们也称为视距:视距就是人的眼睛到屏幕的距离
·距离视觉点越近的在电脑平面的成像越大,越远成像越小
·透视的单位是像素
在这里插入图片描述

透视写在被观察元素的父盒子上面
d:就是视距,视距就是一个人眼睛到屏幕的距离
z:就是z轴,物体距离屏幕的距离,z轴越大(正值),我们看到的物体越大

4.tranlateZ

translateZ(100px):仅仅是在z轴上移动,有了透视,就可以看到translateZ引起的变化了

给父亲添加一个透视,给下面的子盒子加多个translateZ

5.3d旋转rotate3d

3d旋转指可以让元素在三维平面内沿着x,y,z轴或者自定义轴进行旋转

语法

transform:rotateX(45deg)沿着x轴正方向旋转45度(单杆)
transform:rotateY(45deg)沿着y轴正方向旋转45度(钢管舞)
transform:rotateZ(45deg)沿着z轴正方向旋转45度(大转盘)
transform:rotate3d(x,y,z,deg)沿着自定义轴旋转deg为角度(了解即可)
xyz表示旋转轴的矢量,是表示你是否希望沿着此轴旋转,最后一个表示角度

transform: rotate3d(1,1,0,45deg);
<!-- 沿着对角线旋转 -->

左手准则(元素旋转方向的判断)

·左手的拇指指向x轴方向
·其余的手指弯曲的方向就是该元素沿着x轴旋转的方向
·左手的拇指指向y轴的正方向
·其余手指的弯曲方向就是元素沿y轴旋转的方向

6.3d呈现transform-style

·控制子元素是否开启三维立体环境
·transform-style:flat子元素不开启三维立体环境 默认的
·transform-style:preserve-3d;子元素开启立体空间
·代码写给父级,但是影响的是子盒子
·这个属性十分重要,后面肯定用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值