微信小程序CSS Flexbox(弹性盒子)布局模块

容器中使用flexbox

flexbox的模型

当元素表现为 flex 框时,它们沿着两个轴来布局:在这里插入图片描述

名词说明
  • 主轴(main axis)是沿着 flex 元素放置的方向延伸的轴(比如页面上的横向的行、纵向的列)。该轴的开始和结束被称为 main start 和 main end。
  • 交叉轴(cross axis)是垂直于 flex 元素放置方向的轴。该轴的开始和结束被称为 cross start 和 cross end。
  • 设置了 display: flex 的父元素被称之为 flex 容器(flex container)。
  • 在 flex 容器中表现为柔性的盒子的元素被称之为 flex 项(flex item)
实例
<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

含有三个项目的flex容器,其实就是一个普通的容器标签,在样式表中通过将他的display属性值设置为flex,就可以作为伸缩容器用了。

.flex-container {
  display: flex;
}
flex容器的属性
flex-direction

定义容器在哪个方向上来排列子项目

可选值含义示例
column垂直方向上排列,从上到下在这里插入图片描述
column-reverse也是垂直方向上,不过是从下到上的在这里插入图片描述
row水平方向上排列,从左到右在这里插入图片描述
row-reverse水平方向上排列,从右到左在这里插入图片描述
flex-wrap

规定是否对flex的子项目进行换行操作,当子项目水平排列的时候,一行的项目过多是否对其进行换行的操作。

可选值含义示例
wrap在必要的时候换行在这里插入图片描述
nowrap不进行换行,此值为默认值在这里插入图片描述
wrap-reverse必要的时候换行,不过要以相反的顺序换行,相当于从下到上换行在这里插入图片描述
flex-flow

这个参数是对flex-wrap和flex-direction的组合参数,通过这一个属性可以设置两个属性的值

.flex-container {
  display: flex;
  flex-flow: row wrap;
}

通过设置flex-flow把flex-direction设置为row(水平布局),flex-wrap设置为wrap(必要时换行)。

justify-content

控制flex子项目在主轴上的位置。

可选值含义示例
center将flex的子项目向主轴上中心位置对齐在这里插入图片描述
flex-start将子项目向主轴开始位置对齐,即main start位置,本例中最左侧在这里插入图片描述
flex-end将子项目向主轴结束位置对齐,即main end位置,本例中最右侧在这里插入图片描述
space-around主轴方向上,在每个子项目的前后都加上空格在这里插入图片描述
space-between主轴方向上在两个子项目之间加上空格(头尾没有空格)在这里插入图片描述
align-items

控制flex子项目在交叉轴上的位置。

可选值含义示例
center子项目向交叉轴中心位置对齐在这里插入图片描述
flex-start子项目向交叉轴起始位置对齐,即cross start位置,本例中最上方在这里插入图片描述
flex-end子项目向交叉轴结束位置对齐,即cross end位置,本例中最下方在这里插入图片描述
stretch交叉轴方向拉伸子项目填充容器,此值为默认值在这里插入图片描述
baseline子项目与基线(容器中心水平线)对齐在这里插入图片描述
align-self

与align-item相同也是定义了交叉轴方向上的对齐方式,可选值也是相同的,但是这个属性用于子项目自身,它会覆盖掉父容器的align-item属性值。下面的例子中设置父容器的align-item=flex-start,单独设置子项目“2”align-self属性为center,效果图如下:

align-content

定义了子项目的填充方式,即flex容器内部子项目从哪个位置开始填充。该属性对单行弹性盒子模型无效。(即:带有 flex-wrap: nowrap)。

可选值含义示例
center所有行朝向容器的中心填充。每行互相紧挨,相对于容器居中对齐。容器的交叉轴起点边和第一行的距离相等于容器的交叉轴终点边和最后一行的距离在这里插入图片描述
flex-start所有行从交叉轴起点开始填充。第一行的交叉轴起点边和容器的交叉轴起点边对齐。接下来的每一行紧跟前一行在这里插入图片描述
flex-end所有行从交叉轴末尾开始填充。最后一行的交叉轴终点和容器的垂直轴终点对齐。同时所有后续行与前一个对齐在这里插入图片描述
space-between所有行在容器中平均分布。相邻两行间距相等。容器的交叉轴起点边和终点边分别与第一行和最后一行的边对齐在这里插入图片描述
stretch拉伸所有行来填满剩余空间,剩余空间平均地分配给每一行,此值为默认值在这里插入图片描述
子项目居中

justify-content(主轴方向) 和 align-items(交叉轴方向) 属性设置为center(居中),就可以实现子项目的居中。在微信小程序中我只设置了justify-content就实现了居中,不知道是什么情况。

.flex-container {
  display: flex;
  height: 300px;
  justify-content: center;
  align-items: center;
}

在这里插入图片描述

  • 9
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值