简单描述我对弹性盒子的理解及使用方法

  • 2022 年 7 月 20 日
  • 筆記

一   .

   1 什么叫弹性盒子?

   2 弹性盒子的特点,优劣势?

   3 怎么去使用弹性盒子?

   4  flex弹性盒子的注意事项有哪些?

 

/*************************************************解答**********************************************/

       1. 弹性盒子也叫 Flexbox,是一种flex的布局效果,一般作用于手机端,在没有诞生flex之前一般都是用流式布局丶浮动布局丶定位布局等等…来“创造”页面,它最大的特点是有很大的布局分配能力。

       2.先说他的

优点:flex布局有很多自定义属性来完成分配空间的效果,并不需要计算,可以合理的分配空间,基本上新版的浏览器都能兼容。

缺点:假如元素在页面是多行多列时,布局效果会很不尽人如意,一般情况下还是多用于移动端开发,解决不了检查效果与分配空间。

       3. 弹性盒子的使用:在网页中我们把父级元素成为“容器”,它下面的第一层子元素成为“项目”,简单来说就是爸爸称为容器,他的子女称为项目,孙子或者再往后都不能再这么称呼了。如果想使用单行盒子就给需要使用的空间元素添加(给父级添加)  display:flex; 这时,此元素就成了flex的容器盒子,整个容器就能使用flex的相关属性了。

       4. flex的注意事项:① 子元素是依赖容器的元素,想要控制子元素的排序,依靠的是父级元素。 ② 设置父元素为弹性盒子,子元素的float将失效。 ③ 切记不要把flex与浮动布局或定位布局一起使用。 ④ 父级添加使用display:flex;子元素会块状化

二.

     1. 主轴的排列方向?

      2. 主轴的排序?

      3. 项目的换行?

      4. 主轴上的对齐方式?

      5. 交叉轴的对齐方式?

      6. 多行交叉轴的对其方式?

     /*************************************************解答**********************************************/

        1.主轴的排列方向:主轴分行模式 与 列模式两种,也就是水平与垂直,同时也就有了正反两个方向。

         

        2. 主轴的排序:默认的是行模式 既 从左到右,分为以下几种:

flex-direction:row;  默认值 行模式 正向排序

flex-direction:row-reverse;  默认值 行模式 反向排序

flex-direction:column;   默认值 列模式 正向排序

flex-direction:column-reverse;   默认值 列模式 反向排序

 

       3.  项目的换行:默认是强制不换行。

flex-wrap:nowrap; 强制不换行

flex-wrap:wrap; 强制换行

 

 

        4.  主轴上的对齐方式:

justify-content:定义项目在主轴上的对齐方式,注意需要区别行模式和列模式,在渲染之前,会先找到项目的排列方式在做渲染

justify-content: flex-start; 主轴起点对齐

justify-content: flex-end; 主轴终点对齐

justify-content: flex-center; 主轴居中

分配弹性元素的方式:

justify-content: space-between;主轴两端对齐,每行首个元素贴近容器起点,每行尾个元素贴近容器重点,其余剩余空间均分

justify-content: space-around; 均匀排列每个元素,每个元素周围分配相同的空间,如果遇到相邻元素,就成了两臂间隔

justify-content:space-evenly;每个项目元素之间的距离相等,均分所有空间

 

      5.  交叉轴的对齐方式:

align-items 指的是项目在交叉轴对齐方式,但是有前提,交叉轴方向上要有富裕的空间

height: 300px;

align-items: flex-start;  /*交叉轴起点对齐*/

align-items: flex-end;   /*交叉轴终点对齐*/

align-items: center;      /*交叉轴居中对齐*/

 

     6.多行交叉轴的对齐方式:

  多行显示前提:有换行,并且在交叉轴方向上有空余空间

align-content: flex-start;/* 3. 交叉轴起点对齐 */

align-content: flex-end;/* 3.1  交叉轴终点对齐 */

align-content: center;/* 3. 交叉轴居中 */

align-content: space-between;/* 3. 交叉轴两端对齐 */

align-content: space-around;/* 3. 交叉轴环绕对齐,首尾一臂距离,相邻元素两臂距离 */

align-content: space-evenly;/* 3.交叉轴上每行元素之间距离相等,所有剩余空间距离相等 */