Css3之Flex布局
Flex(flexible box) 弹性布局
传统的布局解决方案,基于盒模型,通过 css
中的display
属性 + position
属性 + float
属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。
概念
- 任何容器都可以设为
flex
布局 - 采用flex布局的元素即为flex container,其子元素为容器成员(flex item)
- 设为flex布局以后,子元素的
float
/clear
/vertical-align
属性将会失效
- 任何容器都可以设为
主轴和交叉轴
- 容器默认存在水平主轴
main axis
和垂直的交叉轴cross axis
- flex-item排列的方向是主轴
- 容器默认存在水平主轴
flex-container
容器属性
flex-direction: row | row-reverse | column | column-reverse;flex-direction
决定主轴的方向(同时也是flex-item的排列方向)row
(默认值):主轴是水平方向,flex-item水平从左往右排列column
: 主轴呈垂直方向,从上边沿向下排列reverse
参数: 将起始与终点进行互换
flex-wrap:nowrap | wrap | wrap-reverseflex-wrap
属性定义如果在一条轴线上排不下,换行的规则
nowrap
(默认值):不换行- `wrap` : 自然换行 直接将多余的元素从下一行开始排列 - `wrap-reverse`: 将第一行排列到下方
flex-flow
是flex-direction
和flex-wrap
的简写,默认值为row
nowrap
justify-content: flex-start | flex-end | center | space-between | space-aroundjustify-content
:定义flex-item在主轴main-axis
上的对齐方式flex-start
(默认值):左对齐;flex-end
右对齐;center
居中;space-between
:两端对其,flex-item间的间隔距离相等space-around
:每个flex-item两侧的间隔相等,相当于设置左右margin
值相等
align-items: flex-start | flex-end | center | baseline | strecth。五个取值与交叉轴方向有关align-items
: 定义flex-item
在交叉轴的对齐方式- flex-start|flex-end|center和flex-direction一样,只不过是在交叉轴起点、终点、中点对齐;
- baseline:flex-item的第一行文字的基线对齐
- stretch(默认值):如果flex-item没有设置高度或者值为auto,将占满整个容器高度
align-content:如果容器内出现多跟轴线(即出现wrap),定义主轴在交叉轴上的对齐方式,只有一根轴线时不起作用
align-content: flex-start | flex-end | center | space-between | space-around | stretchstretch
(默认值):轴线沾满整个交叉轴space-between
:与交叉轴两端对齐,轴线间的间隔平均分布space-around
:每根轴线两侧的间隔相等flex-start
:与交叉轴起点对其
flex-item
项目的属性- order 属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大.
如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。
- flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。负值对该属性无效。
flex 属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选
> flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
- flex-basis
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
> align-self: auto | flex-start | flex-end | center | baseline | stretch;
相关推荐
zhanghaibing00 2020-05-31
yuanye0 2020-05-20
葉無聞 2020-05-11
myloveqiqi 2020-05-02
容数据服务集结号 2020-03-01
wangjie 2020-02-12
wwwxuewen 2020-01-20
wangjie 2020-01-12
e度空间 2020-01-12
akcsdno 2019-12-26
MaureenChen 2019-12-01
随智阔 2014-01-13
jiedinghui 2019-11-10
somboy 2019-11-10
waterv 2019-11-09
wangjie 2019-11-04
ThikHome 2019-09-24
红壶吃猬队 2019-09-08
mokingone 2018-03-09