css弹性盒子flex布局

一、Flex布局是什么?

Flex是Flexible Box的缩写,翻译成中文就是“弹性盒子”,用来为盒装模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。

弹性盒子:flex布局 1.弹性盒子是一种布局方式 2.特点:改变盒子的排列方式

采用flex布局的元素,称为flex容器  ,它的所有子元素自动成为容器成员,称为flex项目

在没有flex布局之前因为div是一个块级元素独占一行


得到的效果如下图

这样会使页面的布局很难放在一起:这时flex布局就起到了做用

首先将父元素转化成弹性盒子,这样子盒子就会默认占一行:display:flex;

效果如上图

flex布局中的flex-direction:主轴,交叉轴方向:定义弹性元素的排列方向及顺序 flex-direction里面的值来定义主轴和交叉轴

flex-direction:row;  默认值,表示主轴是水平方向 

   flex-direction:row-reverse ;表示主轴是水平反向   当给父元素设置成水平反向就会得到以下效果


flex-direction:column;表示主轴是垂直正向  当给父元素设置成垂直正向就会得到以下效果


        flex-direction:column-reverse;表示主轴是垂直反向  当给父元素设置成垂直反向就会得到以下效果


定义是否换行,及换行方式:flex-wrap:

flex-wrap:nowrap;默认值,不换行    不换行就会得到如下效果 压缩子元素的宽度



     flex-wrap:wrap;表示换行,默认交叉轴正向换行


flex-wrap:wrap-reverse;表示换行 ,默认交叉轴反向换行


子元素在主轴方向的对齐方式:justify-content:flex-start:默认值,开始方向对齐

justify-content:flex-end  结束方向对齐   给父元素设置justify-content:flex-end  就会得到下面效果:


 justify-content: center;  居中对齐   给父元素设置justify-content:center  就会得到下面效果:


 justify-content:space-between; 两端对齐,项目之间的间隔都相等   给父元素设置justify-content:space-between  就会得到下面效果:



justify-content:space-aroud; 每个项目两侧的间隔都相等。所以项目之间的间隔比项目与边框的间隔大一倍。

给父元素设置justify-content:space-aroud  就会得到下面效果:


子元素在交叉轴方向上的对齐方式 开始方向对齐 align-items:flex-start 


 结束方向对齐 align-items:flex-end


居中对齐  align-items:center;   


 项目的第一行文字的基线对齐:algn-items:baseline;



默认值:如果项目未设置高度或设为auto,将占满整个容器的高度: algn-items:stretch;


多行子元素在交叉轴方向上的对齐方式:开始对齐方式:align-content:flex-start 

给父元素设置 align-content:flex-start  得到下面效果


 结束方向对齐:align-content:flex-end  给父元素设置 align-content:flex-end  得到下面效果


居中对齐align-content:center;     给父元素设置 align-content:center 得到下面效果


 两端对齐,项目之间的间隔都相等align-content:space-between


每个项目两侧的间隔都相等。所以项目之间的间隔比项目与边框的间隔大一倍。align-content:space-aroud


默认值 会拉伸容器内的每个项目占用的空间,填空方式为给每个项目增加空白,占满整个交叉轴 align-content:stretch;


设置弹性元素的顺序:order:默认值0 元素按照order 属性的值的增序进行布局

值越小排列越靠前,拥有相同order 属性值的元素按照它们在源代码中出现的顺序进行布局

设置弹性元素的扩展比率来分配剩余空间:  flex-grow:0;未设置默认为0

设置弹性元素的收缩比率来收缩空间    flex-shrink:1(默认值1)

元素收缩空间公式:  1.多出来的尺寸  2.总权重:元素1尺寸*收缩比率+元素2尺寸*收缩比率

3.收缩空间:元素尺寸*收缩比率*多出来的尺寸/总权重

你可能感兴趣的:(css弹性盒子flex布局)