变形倾斜、动画属性以及弹性盒
一、变形倾斜
- x轴倾斜 transform: skew X(数值deg)
- y轴倾斜 transform: skew Y(数值deg)
- x y 轴倾斜
transform: skew X(数值deg) skew Y(数值deg)
二、动画属性
1、定义动画
(1)如果要加浏览器前缀的话
@-webkit-keyframes name{
from{}
to{}
}
(2)不加浏览器前缀的时候
@keyframes 动画名{
关键帧划分的时间
from{}
to{}
}
@keyframes 动画名{
关键帧
0%{}
……
100%{}
}
2、使用动画
- animation-name:动画名; 必须
- animation-duration:s/ms; 动画执行的时间 必须
- 动画延迟时间:animation-delay:s/ms;
- 执行效果:animation-timing-function:linear(匀速)
- animation-iteration-count:数字/infinite(无限次)
3、执行次数
- animation-play-state:running/paused(暂停)
- animation-direction:normal(头-尾)/reverse(尾-头)/alternate(头-尾-头) 动画关键帧执行的方向
- 动画停留的关键帧:animation-fill-mode:forwards(结束的关键帧)/backwards开始的关键帧
4、复合写法:
animation:动画名 动画执行的时间 动画延迟时间 执行效果 执行次数;
5、动画的和过渡的区别
- 过渡需要结合hover,动画可结可不结
- 动画可有执行无限次
- 过渡只有两种状态,动画可有有多个状态
三、元素类型
1、置换元素
img / input / select / textarea / vidio / audio
- 可以设置宽高,在同一行显示
- 在浏览器显示的时候会自动形成一个区域,或者一块
- 浏览器会根据当前标签以及标签中的属性,在浏览器上面显示不一样的效果
2、非置换元素: 除了置换元素
3、BFC(Block Formatting Context)
块级格式化上下文,是一个独立渲染的区域
(1)触发条件
- overflow: hidden/scroll/auto;
- float: left/right
- position: absolute/fixed
- display: inline-block/table-caption(表格表头)/table-cell(表格单元格)/flex(弹性盒)/inline-flex(内联弹性盒)
(2)特性
- 在BFC的区域,浮动元素的高度会计算在内–主要和高度塌陷
- BFC区域内的元素不会影响到外面的元素–主要和margin的重叠
- BFC的区域不会和浮动元素重叠
四、弹性盒
1、给父元素身上加的属性
- 形成弹性盒 display: flex;
- 子元素在主轴上的位置 justify-content:
- flex-start 默认值,主轴的起点
- flex-end 主轴的终点
- center 主轴的中心
- space-between 两端对齐
- space-around 中间是两端的2倍
- space-evenly 平均
- 子元素在交叉轴的位置 align-items:
- stretch 拉伸,默认值,需要把子项的高度去掉才能拉伸
- flex-start 交叉轴的起点
- flex-end 交叉轴的终点
- center 交叉轴居中
- 换行 flex-wrap:nowrap(默认不换行)/wrap(换行),弹性盒子元素宽超出父元素会被压缩
- 多行之间的位置(只针对多行) align-content:
- stretch 拉伸,默认值
- flex-start 整个盒子开始位置
- flex-end 整个盒子结束的位置
- center 整个盒子的中心
- space-between 整个盒子两端
- space-around 行和行中间的距离是两端2倍
- space-evenly 行和行的距离平均
- 主轴方向 flex-direction
- row 从左向右,默认值
- column 从上到下
- row-reverse 从右到左
- column-reverse 从下往上
2、加在子元素身上
- 单独调整某个子元素在交叉轴的位置 align-self:
- stretch 拉伸,默认值,需要把子项的高度去掉才能拉伸
- flex-start 交叉轴的起点
- flex-end 交叉轴的终点
- center 交叉轴居中
- 排序 order:数值;
- 默认理解为0
- 值越大,越靠后,可以为负数
- 子项压缩 flex-shrink:1(压缩)/0(不压缩)
- 如果子项不想被压缩,而且还不想换行时适用
- 子项放大 flex-grow:0(不放大)/数值;
- 要看父元素剩余的空间,值为1会把父元素剩余的空间全部都拿走
- 子项宽度 flex-basis:数字px;
- 复合写法:flex:子项放大(0) 子项压缩(1) 子项宽度(auto);
- flex:1;效果和flex-grow是等同的
3、子元素水平垂直居中
父元素{
display:flex;
justify-content:center;
align-items:center;
}