微信小程序开发入门教程(九)

本文是微信小程序开发入门教程的第九篇,详细介绍了Flex布局的基本概念、容器属性和项目属性,包括display、flex-direction、flex-wrap等,帮助开发者掌握Flex布局在微信小程序中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

上一篇文章我们已经介绍了微信小程序布局相关内容,介绍了块级元素、行内元素和行内块元素,与此同时还介绍了浮动与定位,如何解决浮动引起的高度坍塌问题。浮动和定位是基于盒子模型传统的布局解决方案,它在处理一些特殊布局时特别不方便,比如垂直居中,2009年W3C提出了一种新的方案Flex,给传统的盒子模型带来了更大的灵活性,微信小程序的WXSS也对其进行来实现。

Flex布局基本概念

Flex布局主要由容器和项目构成,采用Flex布局的元素成为Flex元素,它所有的子元素自动成为容器成员。可以通过设置display属性为flexinline-flex将任何一元素指定为Flex布局。如下图所示,容器默认存在两根轴,水平的主轴和垂直的交叉轴,主轴开始的地方叫main start,结束的地方叫main end;交叉轴开始的地方叫cross start,交叉轴结束的地方叫cross end,项目默认沿主轴从主轴开始的地方到主轴结束的位置进行排列,项目在主轴上占据的空间叫main size,在交叉轴上占据的空间叫cross size。

容器属性

display

display用来指定该元素是否为Flex布局,其属性值如下:

  • flex:用于产生块级Flex布局
  • inline-flex:用于产生行内Flex布局,行内容器符合行内元素的特性,同时容器内又符合Flex布局规范。
    设置Flex布局以后,子元素的float、clear和vertical-align属性将会失效。

flex-direction

flex-direction用于指定主轴的方向,即项目排列的方向,其有四个值如下:

  • row主轴为水平方向,起点在左边,默认值
  • row-reverse:主轴为水平方向,起点在右边
  • colum:主轴为垂直方向,起点在上沿
  • colum-reverse:主轴为垂直方向,起点在下沿

flex-wrap

默认情况下,项目都会排成一条线,flex-wrap用来指定如果一条轴线排不下该如何换行,其有三个值

  • nowarap:不换行,这是默认值
  • wrap:换行,第一行在上方
  • wrap-reverse:换行,第一行在下方

当设置换行时,还需要设置align-item属性配合自动换行,并且align-item值不能为stretch

flex-flow

flex-flow是flex-wrap和flex-direction的简写形式,其默认值是row nowarp。

justify-content

justify-content属性定义了项目在主轴上的对齐方式,其有五个值:

  • fix-start:左对齐,默认值
  • fix-end:右对齐
  • center:剧中
  • space-between:两端对齐,项目之前的间隔都相等
  • space-around:每个项目两侧的间隔相等,项目之间的间隔比项目与边框间的间隔大一倍

align-items

align-items指定项目在交叉轴上如何对齐,其有5个值。

  • fix-start:交叉轴起点对齐
  • fix-end:交叉轴终点对齐
  • center:交叉轴中间线对齐
  • baseline:项目根据他们第一行文字的基线对齐
  • stretch:如果项目未设置高度或设置为auto,项目将在交叉轴方向拉伸充满整个容器,默认值

align-content

align-content用来定义项目多根轴线(出现换行后)在交叉轴线上的对齐方式,如果项目只有一根轴线,该属性不起作用,其有6个值。

  • flex-start:与交叉轴的起点对齐
  • flex-end:与交叉轴的终点对齐
  • flex-center:与交叉轴中点对齐
  • flex-between:与交叉轴两端对齐,轴线之间的间隔平均分配
  • space-around:每根轴线两侧的距离都相等,轴线之间的间隔比轴线与边框的间隔大一倍
  • stretch:轴线占满整个交叉轴,每个项目都会被拉伸至填满交叉轴,默认值

项目属性

order

order属性定义项目的排列顺序,数值越小,排列越靠前。

flex-grow

flex-grow定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大,如果有剩余的空间,整体按比例填充剩余的空间。

flex-shrink

flex-shrink定义了项目的缩小比例,默认为1,如果空间不足,该项目将缩小,每个项目需要缩小的值按flex-shrink比例计算,值越大缩小的就越多。

flex-basis

flex-basis属性用来定义伸缩项目的基准值,剩余的空间将按比例进行缩放,它的默认值是auto,即按项目本来大小。

flex

flex是flex-grow、flex-shrink和flex-basis的简写,默认值为0 1 auto,该属性有两个快捷值auto(1 1 auto)和none(0 0 auto)。建议优先使用这个属性。

align-self

align-self用来设置单独的伸缩项目在交叉轴上的对齐方式,该属性有6个值,除了auto,其余和align-items属性完全一致。

  • auto:表示继承容器的align-items,如果没有父元素,则等同于stretch,默认值
  • flex-start:交叉轴起点对齐
  • flex-end:交叉轴终点对齐
  • center:交叉轴中线对齐
  • baseline:根据第一行文字基线对齐
  • stretch:如果项目未设置高度或设置为auto,项目将在交叉轴方向拉伸充满整个容器,默认值

最后

有兴趣可以关注公众号QStack,会定时分享一些文章和免费的学习资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值