css—flex布局

css—flex布局

    • 一.简介:
      • 1.定义
      • 2.布局原理
    • 二.容器container(父元素)的属性
      • 1.flex-direction 设置主轴方向
      • 2.justify-content 设置主轴上子元素的排列方式
      • 3.flex-wrap 设置子元素是否换行
      • 4.flex-flow 复合元素,相当于同时设置了 flex-direction 和 flex-wrap
      • 5.align-items 设置侧轴上的子元素排列方式方式(单行)
      • 6.align-content : 设置侧轴上的子元素排列方式(多行)
    • 三,项目(item)子元素的属性
      • 1.flex 属性 : 定义子项目分配的剩余空间,用flex表示占的份数
      • 2.align-self : 控制子项自己在侧轴上的排列方式
      • 3.order : 定义项目的排列顺序

一.简介:

1.定义

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

2.布局原理

采用flex布局的元素,称为flex容器(flex container),简称“容器“,它的所有子元素自动成为容器成员,称为flex项目,简称"项目"。
简单来说:就是通过给父盒子添加flex属性,来控制盒子的位置及排列方式。

二.容器container(父元素)的属性

  • flex-direction : 设置主轴的方向
  • justify-content :设置主轴上子元素的排列方式
  • flex-wrap : 设置子元素是否换行
  • flex-flow : 复合元素,相当于同时设置了 flex-direction 和 flex-wrap
  • align-items : 设置侧轴上的子元素排列方式方式(单行)
  • align-content : 设置侧轴上的子元素排列方式(多行)

1.flex-direction 设置主轴方向

//注 : 默认主轴为 x 轴,且主轴和侧轴是可以变化的,通过 flex-direction 设置谁为主轴,剩下的就是侧轴,子元素根据主轴排列。

  1. row (默认值) : 默认从左到右
  2. row-reverse : 从右到左
  3. column : 从上到下
  4. column-reverse : 从下到上



    
    
    
    Document
    


    
1 2 3

flex-direction: row;(默认值,从左到右)

css—flex布局_第1张图片
flex-direction: row-reverse;(从右到左)
css—flex布局_第2张图片
flex-direction: column;(从上到下)
css—flex布局_第3张图片
flex-direction: column-reverse;(从下到上)
css—flex布局_第4张图片

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

1.flex-start(默认值) : 从头开始,如果主轴为 x 轴则为从左到右
2.flex-end : 从尾部开始
3.center :主轴上居中对齐
4.space-around : 平均剩余空间
5.space-between : 两边贴边再平分剩余空间




    
    
    
    Document
    


    
1 2 3

flex-start(默认值) : 从头开始,如果主轴为 x 轴则为从左到右
css—flex布局_第5张图片
flex-end : 从尾部开始
css—flex布局_第6张图片
center :主轴上居中对齐
css—flex布局_第7张图片
space-around : 平均剩余空间
css—flex布局_第8张图片
space-between : 两边贴边再平分剩余空间

css—flex布局_第9张图片

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

1.nowrap(默认值) : 不换行
2.wrap : 换行




    
    
    
    Document
    


    
1 2 3 4 5

nowrap(默认值) : 不换行
//注:felx布局中默认子元素不换行,装不开则会缩小子元素的宽度,以放到父元素中
css—flex布局_第10张图片
wrap: 换行

css—flex布局_第11张图片

4.flex-flow 复合元素,相当于同时设置了 flex-direction 和 flex-wrap

flex-flow: [flex-direction] [flex-wrap]

2+3的组合,详细见上

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

1.flex-start(默认值) : 从上到下
2.flex-end : 从下到上
3.center : 挤在一起居中(垂直居中)
4.stretch : 拉伸




    
    
    
    Document
    


    
1 2 3

flex-start(默认值) 从上到下
css—flex布局_第12张图片
.flex-end 从下到上
css—flex布局_第13张图片
.center 挤在一起居中(垂直居中)

css—flex布局_第14张图片




    
    
    
    Document
    


    
1 2 3

stretch 拉伸

css—flex布局_第15张图片

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

  1. felx-start : 在侧轴头部开始排列
  2. flex-end : 在侧轴尾部开始排列
  3. center : 在侧轴中间显示
  4. space-around : 子轴在侧轴平均剩余空间
  5. sapce-betwen : 子轴在侧轴先分布在两端,再平分剩余空间
  6. stretch : 设置子元素高度评分父元素高度



    
    
    
    Document
    


    
1 2 3 4 5 6

felx-start : 在侧轴头部开始排列
css—flex布局_第16张图片
flex-end : 在侧轴尾部开始排列

css—flex布局_第17张图片
center : 在侧轴中间显示

css—flex布局_第18张图片
space-around : 子轴在侧轴平均剩余空间

css—flex布局_第19张图片
sapce-betwen : 子轴在侧轴先分布在两端,再平分剩余空间

css—flex布局_第20张图片

三,项目(item)子元素的属性

  • flex 属性 : 定义子项目分配的剩余空间,用flex表示占的份数
  • align-self : 控制子项自己在侧轴上的排列方式
  • order : 定义项目的排列顺序

1.flex 属性 : 定义子项目分配的剩余空间,用flex表示占的份数




    
    
    
    Document
    


    

css—flex布局_第21张图片

2.align-self : 控制子项自己在侧轴上的排列方式

//注align-self 属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。其默认值为auto,表示继承父元素的align-items属性,没有父元素则等同于stretch




    
    
    
    Document
    


    
1 2 3

css—flex布局_第22张图片

3.order : 定义项目的排列顺序

//注:默认值为0,数值越小越靠前




    
    
    
    Document
    


    
1 2 3

css—flex布局_第23张图片

你可能感兴趣的:(学习,css,css3)