首页 > HTML5+CSS > CSS学习 > CSS中的flex布局
2020
10-13

CSS中的flex布局

Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。是W3C提出的一种新的方案,可以简便、完整、响应式地实现各种页面布局。

它即可以设置容器为块元素(display:flex),也可以设置容器为行内元素(display:inline-flex)。

设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

目前,它已经得到了所有浏览器的支持。

定义容器的六个属性

flex-direction:容器内元素的排列方向(默认row)

    row,沿水平主轴从左向右排列
    row-reverse,沿水平主轴从右向左排列
    column,沿垂直主轴从上到下垂直排列
    column-reverse,沿垂直主轴从下到上垂直排列
CSS中的flex布局 - 第1张  | 清河洛

flex-wrap:容器内元素的换行(默认nowrap)

    nowrap:不换行,如一个div宽度100%,设置此属性,2个div宽度就自动变成各50%
    wrap:自动换行,向下方换行,第一行在上方
    wrap-reverse:自动换行,向上方换行,第一行在下方

flex-flow:是flex-direction属性和flex-wrap属性的简写形式,默认值为:row nowrap

justify-content:容器内元素在水平主轴上的对齐方式(默认flex-start)

    center:水平居中对齐
    flex-start:水平方向左对齐
    flex-end:水平方向右对齐
    space-between:从两端分散对齐
    space-around:每个元素左右两侧的间隔相等分散对齐
CSS中的flex布局 - 第2张  | 清河洛

align-items:容器内元素在当前行的垂直方向上的对齐方式(默认stretch)

    flex-start:顶部对齐
    flex-end:底部对齐
    center:水平中间线对齐
    baseline:第一行文字的基线对齐
    stretch:如果元素未设置高度或设为auto,将占满整个容器的高度。
CSS中的flex布局 - 第3张  | 清河洛

align-content:容器内元素垂直主轴上的对齐方式(默认center)

    flex-start:顶部对齐
    flex-end:底部对齐
    stretch:居中对齐
    center:每个元素下间隔相同占满垂直空间
    space-between:从两端分散对齐
    space-around:每个元素上下两侧的间隔相等分散对齐
CSS中的flex布局 - 第4张  | 清河洛

容器内元素的属性:

order :定义元素的排列顺序,数值越小越靠前,可以为负数,默认为0
flex-grow :定义如果存在剩余空间元素的放大比例,默认为0,表示不放大

    如果所有元素的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。
    如果其中一个元素的flex-grow属性为2,其他都为1,则前者占据的剩余空间将比其他项多一倍。

flex-shrink :定义如果空间不足元素的缩小比例,0表示不缩小,默认为1,负值无效
flex-basis |auto:定义了在分配多余空间之前,元素占据的水平宽度。

    浏览器根据这个属性,计算主轴是否有多余空间。
    它的默认值为auto,即项目的本来大小。
    它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。

flex:是flex-grow, flex-shrink 和 flex-basis的简写

默认值为0 1 auto,后两个属性可选。
该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

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

    默认值为auto,表示继承父元素的align-items属性
    如果没有父元素,则等同于stretch。
最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。