1.动画
动画的使用必须要准备:
1.准备动画 @keyframes 关键字定义
2.需要为想要使用动画的dom元素 添加一系列的动画属性
/* 1.定义动画 */
@keyframes toright{
from{
/* from中如果不设置 默认使用的是 初始状态 */
}
to{
transform: translateX(800px);
}
}
# //也可以使用百分数设置 #
@keyframes stepAnimation{
/* 起始状态 */
0%{
}
/* 动画的一半 移动到屏幕的 最右边 */
50%{
transform: translateX(1000px);
}
/* 返回到起始的位置 */
100%{
transform: translateX(0);
}
}
-----------------------------------------------------------------------
//准备一个class 内部定义了动画的各种效果
.animation{
/* 动画的名字 */
animation-name: toright;
/* 动画持续多久 */
animation-duration: 2s;
/* 设置动画的次数
动画次数
可以给具体的值
infinite 无限
*/
animation-iteration-count: infinite;
/* 动画的速度 线型 */
animation-timing-function: linear;
/* 动画的延迟事件 */
animation-delay: 2s;
/* animation-direction 属性定义是否应该轮流反向播放动画 */
animation-direction alternate;// 属性定义是否应该轮流反向播放动画
}
===================================================================
/* 鼠标悬停的时候 停止动画 */
.container:hover{
/* 动画状态
如果要使用js操作该属性
dom.style.animationPlayState ='paused'
*/
/* animation-play-state: paused; */
animation: haha ;
}
动画的复合写法:
animation: name duration timing-function delay iteration-count direction;
值 描述
animation-name | 规定需要绑定到选择器的 keyframe 名称。。
animation-duration | 规定完成动画所花费的时间,以秒或毫秒计。
animation-timing-function | 规定动画的速度曲线。
animation-delay | 规定在动画开始之前的延迟。
animation-iteration-count | 规定动画应该播放的次数。
animation-direction | 规定是否应该轮流反向播放动画。
注意:
- 属性的顺序 是可以随意调换的
- 第一次出现的时间 是持续时间
- 第二次出现的时间 是延迟时间
- 如果只写了一个时间 默认就是 持续时间
2.弹性布局
1.使用弹性布局需要在父盒子中开启弹性布局
弹性布局 开启以后 元素默认分为两个轴排布
- 主轴 默认是 X方向
- 副轴 默认是 Y轴方向
display: flex;
设置主轴副轴:
/* 调整元素 在主轴上的 排布方式
flex-end 到主轴的末尾
flex-start 默认值
center 居中
space-between 左右靠边,中间间隙 相等排布
space-around 左右 间隙相等
*/
justify-content: space-around;
--------------------------------------------------
/* 设置副轴的 对其方式
如果 只有一行 设置 元素 在副轴上的对其方式
flex-start
flex-end
center
*/
align-items: flex-end;
}
--------------------------------------------------
/* 单独设置元素 在副轴上的对其方式 会覆盖父元素的 align-items */
可设置:
flex-start | flex-end | center;
align-self: center;
调整主轴方向:
flex-direction: column;
注意:
/* 设置主轴的排布 哪怕方向改变 */
justify-content: flex-end;
/* 设置副轴的排布 方向改变之后 依旧是设置副轴 */
align-items: center;
换行
/* 开启弹性布局的换行 */
### flex-wrap: wrap; ###
/* 变为多行了 无法使用 align-items 进行位置设置
align-content 在多行的时候 设置属性 跟 justify-content 一模一样
如果只有 一行时 无法生效
*/
align-content: flex-end;