移动WEB开发之flex布局

一、flex布局体验

(一)传统布局与flex布局

1、传统布局

(1)兼容性好

(2)布局繁琐

(3)局限性,不能再移动端很好的布局

2、flex 弹性布局

(1)操作方便,布局极为简单,移动端应用很广泛

(2)PC端浏览器支持情况较差

(3)IE 11或更低版本,不支持或仅部分支持

3、建议:

(1)如果是PC端页面布局,我们还是传统布局

(2)如果是移动端或者不考虑兼容性问题的PC端页面布局,我们还是使用flex弹性布局

二、flex布局原理

flex是flexible Box 的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局。

1、当我们为父盒子设为flex布局以后,子元素的float、clear和vertical-align 属性将失效

2、伸缩布局=弹性布局=伸缩盒布局=弹性盒布局=flex布局

(一)布局原理

1、采用Flex布局的元素,称为Flex容器(flex container),简称“容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称“项目”。

(1)体验中 div 就是 flex父容器

(2)体验中 span 就是子容器flex项目

(3)子容器可以横向排列也可以纵向排列

2、总结flex布局原理:
就是通过给父盒子添加flex属性,来控制子盒子的位置和排列方式。

三、flex布局父项常见属性

(一)常见父项属性

1、flex-direction:设置主轴的方向

2、justify-content:设置主轴上的子元素排列方式

3、flex-wrap:设置子元素是否换行

4、align-content:设置侧轴上的子元素的排列方式(多行)

5、align-items:设置侧轴上的子元素排列方式(单行)

6、flex-flow:复合属性,相当于同时设置了 flex-direction 和 flex-wrap

(二)flex-direction 设置主轴的方向

1、主轴与侧轴

在flex布局中,是分为主轴和侧轴两个方向,同样的叫法有:行和列、x轴和y轴

(1)默认主轴方向就是x轴方向,水平向右

(2)默认侧轴方向就是y轴方向,水平向下

 

 

 2、属性值

(1)flex-direction 属性决定主轴的方向(即项目的排列)

(2) 注意:主轴和侧轴是会发生变化的,就看flex-direction设置谁为主轴,剩下的就是侧轴,而我们的子元素是跟着主轴来排列的

(3)

属性值 说明
row 默认值从左到右
row-reverse 从右到左
column 从上到下
column-reverse 从下到上

 

 

 

 

 

 

(三)justify-content 设置主轴上的子元素排列方式

1、justify-content 属性定义了项目在主轴上的对齐方式

2、注意:使用这个属性之前一定要确定好主轴是哪个

3、

属性值 说明
flex-start 默认值 从头部开始 如果主轴是x轴,则从左到右
flex-end 从尾部开始排列
center 在主轴居中对齐(如果主轴是x轴,则水平居中)
space-around 平分剩余空间
space-between 先两边贴边,再平分剩余空间(重要)

 

 

 

 

 

 

 

(四)flex-wrap 设置子元素是否换行

1、默认情况下,项目都排在一条线上(又称“轴线”)上,flex-wrap属性定义,flex布局中默认是不换行的。

2、

属性值 说明
nowrap 默认值,不换行
wrap 换行

 

 

 

 

(五)align-items 设置侧轴上的子元素排列方式(单行)

1、该属性是控制子项在侧轴(默认是y轴)上的排列方式,在子项为单项的时候使用

2、

属性值 说明
flex-star 默认值 从上到下
flex-end 从下到上
center 挤在一起居中(垂直居中)
stretch 拉伸

 

 

 

 

 

 

(六)align-content 设置侧轴上的子元素的排列方式(多行)

1、设置子项在侧轴上的排列方式,并且只能用于子项出现换行的情况(多行),在单行下是没有效果的。

属性值 说明
flex-star 默认值在侧轴的头部开始排列
flex-end 在侧轴的尾部开始排列
center 在侧轴中间显示
space-around 子项在侧轴平分剩余空间
space-between 子项在侧轴先分布在两头,再平分剩余空间
stretch 设置子项元素高度平分父元素高度

 

 

 

 

 

 

 

 

(七)align-content 和 align-items 区别

1、align-items 适用于单行情况下,只有上对齐、下对齐、居中和拉伸

2、align-content 适用于换行(多行)的情况下(单行情况下无效),可以设置 上对齐、下对齐、居中、拉伸以及平均分配剩余空间等属性值

3、总结就是单行找 align-items ,多行找 align-content

(八)flex-flow

1、flex-flow 属性是 flex-direction 和 flex-wrap 属性的复合属性

flex-flow: column wrap;
(九)总结
(1)flex-direction:设置主轴的方向
(2)justify-content:设置主轴上的子元素排列方式
(3)flex-wrap:设置子元素是否换行
(4)align-content:设置侧轴上的子元素的排列方式(多行)
(5)align-items:设置侧轴上的子元素排列方式(单行)
(6)flex-flow:复合属性,相当于同时设置了 flex-direction 和 flex-wrap

四、flex布局子项常见属性

 (一)flex 属性

1、flex 属性定义子项目分配剩余空间,用flex来表示占多少份数

.item {

  flex: <number>;  /* default 0 */

}

(二)align-self 控制子项自己在侧轴上的排列方式

1、align-self 属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items 属性

2、默认值为auto,表示继承父元素的align-items 属性,如果没有父元素,则等同于 stretch。

3、

div span:nth-child(3) {
            /* 设置自己在侧轴上的排列方式 */
            align-self: flex-end;
        }
(三)order 属性定义项目的排列顺序
1、数值越小,排列越靠前,默认为0
2、注意:和z-index 不一样

 

posted @   燕归楼  阅读(92)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示