CSS---flex布局中父项常见属性

复习目标:

1. 能够说出 flex 盒子的布局原理

2. 能够使用 flex 布局的常用属性

3. 能够独立完成写成移动端首页案例

传统布局与flex布局有什么区别?

传统布局flex弹性布局
兼容性好操作方便, 布局极为简单, 移动端应用很广泛
布局繁琐PC端浏览器支持情况较差
局限性, 不能在移动端很好的布局IE 11 或 更低版本, 不支持或仅部分支持

建议:

1. 如果是PC端页面布局, 我们还是使用传统布局

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

flex布局原理是什么?

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

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

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

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

                体验中div就是 flex父容器

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

                子容器可以横向排列也可以纵向排列

总结flex布局原理:

就是通过给父盒子添加 flex属性, 来控制子盒子的位置和排列方式


常见父项属性

以下由6个属性事对父元素设置的

flex-direction: 设置主轴的方向

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

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

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

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

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

flex-direction 设置主轴的方向

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

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

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

 元素是跟着主轴排列的

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

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

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

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

flex布局中, 默认的子元素是不换行的  如果装不下, 则会缩小子元素的宽度, 放到父元素里面

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

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

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

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

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

     

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

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

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

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

align-content 和 align-items 区别

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

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

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

flex-flow

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

例子:  flex-flow: row wrap;   

        

总结:

        一般先设置主轴的方向 这个直接影响我们后续部分写的是否正确

               其次: 设置主轴上子元素排列的方式

               然后  选择侧轴的子元素的排列方式(侧轴排列方式有两种 单行的和多行的) 

        flex-direction: 设置主轴方向

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

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

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

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值