flex布局

174 阅读3分钟

什么是flex布局

flex布局可以简单的理解为是一种方便实现元素空间分布元素对齐一维布局模型。

什么是一维布局

一维布局的意思就是一次只能处理一行一列上的元素空间分布。

轴线

flex布局主要是基于轴线实现元素的空间分布,轴线分为主轴交叉轴主轴主要是由flex-direction来控制,交叉轴则是垂直于主轴的轴线。

主轴&交叉轴

主轴主要是通过flex-direction控制轴向,其取值包含四个rowrow-reversecolumn[- /ˈkɒləm/]column-reverse交叉轴则是垂直于主轴的轴线。;

  • row、row-reverse

    flex-direction:row;flex-direction:row-reverse;是将主轴设置为水平方向,子元素横向排列,row子元素自左向右顺序排列,row-reverse子元素自右向左顺序排列

  • column、column-reverse

    flex-direct排列ion:column;flex-direction:column-reverse;是将主轴设置为垂直方向,子元素垂直排列,column子元素自上而下依次排列,column-reverse子元素自下而上依次排列

主轴在水平方向上控制子元素布局

  • justify-content

    子元素对齐方式和轴线息息相关,如果主轴为水平方向(flex-direction:row;flex-direction:row-reverse;),控制子元素的水平空间分布的是justify-content属性,控制子元素的垂直空间分布就是align-item属性

    属性解释
    justify-contentflex-start从行首开始排列。每行第一个弹性元素与行首对齐,同时所有后续的弹性元素与前一个对齐。
    justify-contentflex-end从行尾开始排列。每行最后一个弹性元素与行尾对齐,其他元素将与后一个对齐
    justify-contentcenter每行第一个元素到行首的距离将与每行最后一个元素到行尾的距离相同。
    justify-contentspace-between在每行上均匀分配弹性元素。相邻元素间距离相同。每行第一个元素与行首对齐,每行最后一个元素与行尾对齐。
    justify-contentspace-around在每行上均匀分配弹性元素。相邻元素间距离相同。每行第一个元素到行首的距离和每行最后一个元素到行尾的距离将会是相邻元素之间距离的一半。
    justify-contentspace-evenlyflex 项都沿着主轴均匀分布在指定的对齐容器中。相邻 flex 项之间的间距,主轴起始位置到第一个 flex 项的间距,主轴结束位置到最后一个 flex 项的间距,都完全一样。

  • align-items

    子元素对齐方式和轴线息息相关,如果主轴为水平方向(flex-direction:row;flex-direction:row-reverse;),控制子元素的垂直空间分布的是align-items 属性

    属性解释
    align-itemsflex-start元素向交叉轴起点对齐。
    align-itemsflex-end元素向交叉轴终点点对齐。
    align-itemscenter元素在交叉轴方向居中。
    align-itemsbaseline所有元素向基线对齐。侧轴起点到元素基线距离最大的元素将会于侧轴起点对齐以确定基线。

flex布局实现骰子6面