作者:朵儿lp_685 | 来源:互联网 | 2023-09-24 01:42
目录一、2d转换2.1基本应用二、3d转换三、动画3.1常用属性3.2动画示例四、适配不同屏幕4.1监控屏幕尺寸4.2适用单位4.3配合使用一、2d转换特点:未指定,则2d变换不脱
目录
- 一、2d转换
- 二、3d转换
- 三、动画
- 四、适配不同屏幕
- 4.1 监控屏幕尺寸
- 4.2 适用单位
- 4.3 配合使用
一、2d转换
特点:未指定,则2d变换不脱标
2.1 基本应用
- 移动
- 单向写法:
transform:translateX(100px);
,X正方向:向右;Y正方向:向下
- 简写法:
transform: translate(50%, 50px);
,50%相对于样式所在盒子的高度
- 旋转:
transform: rotate(30deg);
,相对transform-origin旋转,坐标系也旋转
- 缩放:
transform: scale(0.5, 2);
,相对transform-origin缩放,X向比例0.5,Y向比例2,可只写一个则双方向同
- 转换中心点:
transform-origin: 100% 100px;
二、3d转换
- 封装子盒子们:
transform-style: preserve-3d;
,需给父盒子设置此属性,子盒子们组合成的立体才会显示正常
- 视距:
perspective: 500px;
,需给父盒子设置此属性,子盒子有关Z轴的3d才会有效果,原理如下图(视距为d,z轴为z)
- 移动
- 单向写法:
transform:translateZ(100px);
,Z正方向:向屏幕外
- 复合写法:
transform:translate3d(100px,100px,100px);
,3个参数不可省
- 旋转
- 单向旋转:
transform: rotateX(180deg);
,绕X轴正向旋转,左手法则:大拇指指向X轴正向
- 复合写法:
transform: rotate3d(0,0,1,180deg);
,前三个为方向矢量,确定旋转所绕的轴,左手法则
三、动画
3.1 常用属性
属性 |
描述 |
可选项 |
---|
animation-name |
动画名称 |
用户自定义动画名 |
animation-duration |
动画持续时间 |
秒数:3s |
animation-iteration-count |
动画循环次数 |
默认1次,infinite:无限循环 |
animation-direction |
动画进行方向 |
默认normal:从结尾立即跳转到开头,alternate:交替往复 |
animation-fill-mode |
动画结束帧位 |
默认backwards:停留在0%帧,forwards:停留在100%帧 |
animation-play-state |
动画播放状态 |
默认:running,paused:暂停 |
animation-delay |
动画延迟秒数 |
默认:0,可写秒数:3s |
- 速度曲线
- 功能:调节动画运动速度
- 可选项:ease:低高低,linear:匀速,ease-in-out:钟摆速率,steps(n):从始到终定格播出,n为步数
动画简写:
- 写法:
animation: move 3s infinite alternate forwards 1s;
,前两个必须选
- 冲突项:靠后秒数为animation-delay不包含animation-play-state,结束帧位不与循环次数、进行方向同用
- 多个动画:
animation:动画1,动画2;
3.2 动画示例
实现效果:盒子从0,0到1000,1000,往复运动,无限循环
定义关键帧
@keyframes move { /* 动画名称为move */
0% { /* 动画初始帧 */
transform: translate(0, 0); /* 属性初始值 */
}
100% { /* 动画终止帧 */
transform: translate(1000px, 1000px); /* 属性结束值 */
}
}
使用动画
.movie {
width: 50px;
height: 100px;
background-color: black;
animation-name: move; /* 可以简写 */
animation-duration: 3s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.movie:hover {
animation-play-state: paused; /* 鼠标悬停则动画暂停 */
}
实现效果:伪元素以盒子左下角为轴滑入#head盒子内
代码
四、适配不同屏幕
4.1 监控屏幕尺寸
4.2 适用单位
- em:为父盒子文字尺寸,可调整父盒子
div {font-size:15px;}
调整1em
- rem:为浏览器html文字尺寸,root em的缩写,可调整
html {font-size:15px;}
调整1rem
若屏幕尺寸确定,通过调整决定rem尺寸的html的font-size,可以调整一行可以放置的文字数量
- 工具:vs code中的cssrem插件,会自动转换px到rem,默认1rem=16px,适配iPhone6需改为75px
4.3 配合使用
上一篇:CSS精简笔记(三)------盒子模型
本文地址:https://blog.csdn.net/chucksun0426/article/details/110957611