需求:多个div从下往上布局 ,div垂直居中
任何一个容器可以指定为flex布局,但是td和th等标签本身已有布局,所以重写display属性会使元素失去原有的布局特性
*{
display:flex
}
任何一个被设置为弹性布局的容器会有两条抽象的轴,弹性布局的容器的有以下属性
- flex-direction 决定项目主轴的排列方向
- row 主轴方向从左到右排列,主轴为横向轴
- row-reverse 主轴方向从右到左排列
- column 主轴为纵向纵
- column-reverse 交叉轴上从下往上排列
flex-wrap 所有项目如何被包裹
- nowarp 不换行(列),项目的宽高会变化
- wrap 换行(列),溢出会顺序换行
- wrap-reverse 反向排列
- flex-flow flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap
- justify-content justify-content属性定义了项目在主轴上的对齐方式。
- flex-start(默认值):左对齐
- flex-end:右对齐
- center: 居中
- space-between:两端对齐,项目之间的间隔都相等。
- space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
- align-items align-items属性定义项目在交叉轴上如何对齐
- flex-start:交叉轴的起点对齐。
- flex-end:交叉轴的终点对齐。
- center:交叉轴的中点对齐。
- baseline: 项目的第一行文字的基线对齐。
- stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
- align-content align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
- flex-start:与交叉轴的起点对齐。
- flex-end:与交叉轴的终点对齐。
- center:与交叉轴的中点对齐。
- space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
- space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
- stretch(默认值):轴线占满整个交叉轴。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .container{ width:500px; height:500px; border: 1px solid #0e90d2; display: flex; flex-direction:row-reverse; } .box{ width:200px; height:200px; background:#bbbbbb; } </style> </head> <body> <div class="container"> <div class="box"> 1 </div> <div class="box"> 2 </div> <div class="box"> 3 </div> <div class="box"> 4 </div> <div class="box"> 5 </div> </div> </body> </html>