在小程序中使用 flex 布局

本文深入讲解了小程序中Flex布局的应用,包括布局原理、属性设置、方向控制及元素对齐方式,帮助开发者掌握灵活布局技巧。
1. 何为布局

布局就是用代码按照设计图的样式实现。在小程序中 view 标签相当于 html 里面的 div 都是一个块级元素。

行内元素(inline)是不能设置宽和高的。但是(inline-block)元素可以。

2. flex 布局

flex (flexible) 弹性盒子。

2.1 flex 消除了 item 的块状特性

使用 flex 可以实现三个元素在一行。当一个容器里面有很多的子元素时,给这个父容器添加 flex 属性,其子元素的块级元素的特征就会消失。子元素就会默认排列在一行中。

2.2 flex-direction 的应用

当给容器设置了 flex 属性的时候,它的子元素的 block 属性就会失去作用,就算给子元素设置block 属性也是起不了作用的。

.container{
   display: flex;
   flex-direction: column;
}

给父元素添加 flex-direction: column; 属性,其子元素就会采用纵向排列.flex-direction 的默认值是 row

2.3 reverse 倒序排布
.container{
    display: flex;
    flex-direction: column-reverse;
}

flex-direction 的四个常用取值:

  1. row
  2. column
  3. row-reverse
  4. column-reverse

使用 flex 之后,容器的高度是自适应的,其会根据容器的内部元素的高度而改变。

总结:对于 view 这个组件,它的宽度默认是 100% ,高度通常是自适应的。对于 reverse 倒序,不仅仅元素排列的顺序会发生改变,其对齐的方向也会改变。

2.4 justify-content属性

对齐方向: justify-content
常用属性:

.container{
    display: flex;
    flex-direction: row;
    /*开始的位置对齐*/
    justify-content: flex-end;
    /*结束的位置对齐*/
    justify-content: flex-start;
    /*居中对齐*/
    justify-content: center;
    /*平均分布:两侧对齐,中间平均分布*/
    justify-content: space-between;
    /*等距分布:对于每个子元素,他们两侧的距离均相等*/
    justify-content: space-around;
}
2.5 主轴与交叉轴

flex 里面有两个轴:主轴和交叉轴。

实现元素水平方向和垂直方向上面都居中:

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

主轴和交叉轴是可以自定义的:通过 flex-direction 属性进行定义。justify-content 属性设置在主轴上面的排列方式 align-items 属性设置在交叉轴的排列方式。

2.6 baseline 与 stretch

align-items: stretch; 在没有设置item 的高度的时候,将 align-items: 的属性值设置为 stretch 的时候,item 会充满父元素。

align-items: baseline;baseline 的意思是,让 items 元素按照第一个元素里面的文字对齐。

2.7 flex-wrap 与消除间距

flex-wrap 属性是设置换行。
当我们给设置了 flex 属性的容器的子元素设置了宽度之后,就算子元素的总宽度超过的容器的宽度,flex 也不会让他们自动换行。
假如我们需要那些子元素换行的话,就需要用到 flex-wrap 属性.
flex-wrap 常用属性值:

    /* 换行,*/
    flex-wrap: wrap;
    /*不换行,默认状态下的取值*/
    flex-wrap: nowrap;
    /*颠倒换行*/
    flex-wrap: wrap-reverse;

当容器的高度过多时,被换行的元素的上下间距会平分。如果不需要平分间距的话,将容器的高度设置一下即可.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值