弹性布局flex

89 阅读3分钟

移动web第三天

拓展和补充

拓展

如何判断属性在各浏览器是否兼容:打开caniuse网站,搜索想要的属性

1647522248062.png

补充

一、过渡的四个属性

1.想要实现过渡的css属性名 width,height等 通常用all

2.过渡持续的时间:transition-duration:时间秒/s;

3.过渡的速度曲线:transition-timing-function: steps(数字);匀速:linear

4.过渡延迟时间:transition-delay: 时间秒/s;

二、块级元素设置了定位(绝对和固定),宽度有内容撑开,注意设置宽度。

动画

基本实现步骤

1647523624711.png

animation复合属性

1647523702234.png

补充

  1. 复合属性写法:

    animation: name duration timing-function delay iteration-count direction fill-mode;
    
  2. animation-fill-mode: both;开始跟结束两种状态都选;

  3. animation-timing-function,速度曲线,默认值ease(先慢再快再慢),匀速:linear

  4. forwards(最后一帧状态)不能和infinite(无限循环)结合使用,否则不生效;

  5. animation里面属性不分先后顺序,当属性里有两个时间时,第一个时间永远表示动画长,第二个永远表示延迟时间。

移动端

分辨率和像素

流式布局(百分比布局):

宽度设置百分比,高度固定。

flex布局

父项

一、flex组成部分 display: flex

  1. 弹性容器(父项):默认的宽度是父元素的宽度,默认的高度是由内容所撑开
  2. 弹性盒子(子项):默认的宽度由内容撑开,默认的高度是父元素的高度;
  3. 子项元素不再区分块、行内、行内块元素,全部都可设置宽高;
  4. 子项设置浮动没有效果;定位、margin、transform都有效;
  5. 默认情况下,子项总宽度大于父项也不会换行,只会压缩。

二、主轴对齐方式(justify-content):方向是水平

  1. justify-content: flex-start; 默认值,由父元素的起点开始显示,左边;
  2. justify-content: flex-end; 从父元素的终点开始显示,右边;
  3. justify-content: center; 弹性盒子在弹性容器中水平居中;
  4. justify-content: space-around; 空白空间围绕在弹性盒子的两侧--首尾弹性盒子离弹性容器的距离,是弹性盒子与弹性盒子之间的距离的1/2;
  5. justify-content: space-between; 首尾的弹性盒子与弹性容器没有间隙,弹性盒子与 性盒子之间的空间间隙相等;
  6. justify-content: space-evenly; 平均空白缝隙,均分在弹性容器与弹性盒子之间。

三、侧轴对齐方式

a.单行对齐:align-items
  1. a. align-items: flex-start; 默认值,由父元素的起点开始显示,上边;
  2. b. align-items: flex-end; 从父元素的终点开始显示,下边;
  3. c. align-items: center; 让弹性盒子在垂直方向上居中;
  4. d. align-items: stretch; 默认值,让弹性盒子的高度沿着侧轴拉伸直到和父元素高度一致。
b.多行对齐: align-content
  1. align-content: flex-start;
  2. align-content: flex-end;
  3. align-content: center;
  4. align-content: space-around;
  5. align-content: space-between;
  6. align-content: space-evenly;

**注意:**单行跟多行的对齐方式要对号入座

四、设置换行

属性:flex-wrap

默认值 nowrap 不换行

wrap 换行

五、设置主轴方向

  1. row 默认值 左到右;
  2. row-reverse 右到左;
  3. column 常用 上到下;
  4. column-reverse 下到上。

子项

1.默认宽度等于内容撑开;

2.默认高度等于父项的高度;

3.flex:1 设置子项的宽度;

4.align-self 设置子项在侧轴上的对齐:

​ a. flex-start 上;

​ b. flex-end 下;

​ c. center 居中。

主轴方向改了column(主轴垂直,侧轴水平)

  1. 默认的高度等于内容撑开;
  2. 默认宽度等于父项跨度;
  3. flex:1 设置子项的高度;
  4. align-self 设置子项在侧轴上的对齐(水平)。