微信小页面布局方式flexbox -温故而知新

来源:未知 浏览 69次 时间 2021-06-09 21:02

微信小程序使用flexbox容器flexbox布局由伸缩容器和伸缩项目组成。任何一个元素都可以指定为flexbox布局其中设为display:flex或者display:inline-flex的元素称为伸缩容器。伸缩容器的子元素称为伸缩项目新搜索其中设为display:flex或者display:inline-flex的元素称为伸缩容器。伸缩容器的子元素称为伸缩项目伸缩项目使用伸缩布局模型来排版。伸缩布局模型与传统的布局不一样它按照伸缩流的方向布局。请看下面的经典图片

默认情况下伸缩容器由两根轴组成主轴(main)和交叉轴(cross)其中主轴的开始位置叫main start结束位置叫main end。交叉轴的开始位置叫cross start结束位置叫cross end 。伸缩项目的主轴上的占据空间叫main axis在交叉轴上的占据位置叫cross axis根据设置情况的不同。主轴既可以是水平轴也可以是垂直轴。不论哪个轴作为主轴默认情况下伸缩项目总是沿着主轴从主轴开始位置到主轴结束位置进行排版flexbox在浏览器使用需要加上各个浏览器的私有前缀,-webkit ,-moz,-ms,-o微信小程序全部去掉前缀。

伸缩容器支持的属性有:

1,display

2,flex-direction

3,flex-wrap

4,flex-flow

5,justify-content

6,align-items

7,align-content

8,order

9,flex-grow

10,flex-basis

11,flex

12,align-self

主要介绍这几个属性

 display

该属性用来指定元素是否为伸缩容器语法为

display:flex    |   display:inline-flex

wxml代码为:

<view class="Container">
  <view class="sp1">1</view>
  <view class="sp2">2</view>
  <view class="sp3">3</view>
  <view class="sp4">4</view>
  <view class="sp5">5</view>
  <view class="sp6">6</view>
  <view class="sp7">7</view>
  <view class="sp8">8</view>
  <view class="sp9">9</view>
</view>

wxss代码为

.container{
display: flex;
}

flex:用于产生块级伸缩容器

.container{
display: inline-flex;
}

inline-flex:用于产生行内级伸缩容器

flex-direction

该属性用于指定主轴方向语法为

flex-direction: row  | row-reverse  | column  | column-reverse

1)row水平方向从左向右

2)row-reverse水平方向从右向左

4)column伸缩容器为垂直方向伸缩项目的排版方式为从上到下

5)column-reverse伸缩容器为垂直伸缩项目为从下到上

flex-wrap

该属性用来指定伸缩容器的主轴线方向空间不足的情况下是否换行以及该如何换行

flex-wrap: nowrap | wrap  | wrap-reverse 

1)nowrap空间不足是也不换行

2)wrap空间不足可以换行

3) wrap-reverse空间不足可以换行若主轴为水平轴则换行的方向为从下到上和wrap相反

flex-flow

该属性是flex-direction和flex-wrap属性的缩写版本它同时指定了伸缩容器的主轴和侧轴其默认属性为row nowrap

flex-flow: flex-direction | flex-wrap

justify-content

该属性用来定义伸缩项目沿主轴线的对齐方式

justify-content: flex-start | flex-end | center | space-between | space-around

1)flex-start伸缩项目向主轴线的起始位置靠齐

2)flex-end 伸缩项目向主轴线的结束位置对齐

3)center伸缩项目向主轴线的中间位置靠齐

4)space-around伸缩项目会平均的分布在主轴线里两端保留一半的空间。

5)space-between伸缩项目会平分在主轴线里第一个伸缩项目在主轴线的开始位置最后一个伸缩项目在主轴线的终点位置

align-items

该属性用来定义伸缩项目在伸缩容器的交叉轴上的对齐方式

align-items: flex-start | flex-end | center | baseline |  stretch;

1)flex-start伸缩项目沿交叉轴的起始位置对齐

2)flex-end沿交叉轴的结束位置对齐

3)center伸缩项目沿交叉轴的中间位置靠齐

4)baseline伸缩项目根据它们的基线对齐

5)stretch伸缩项目在交叉轴方向拉伸填充整个伸缩容器

align-content

用来调整伸缩项目出现换行后在交叉轴上的对齐方式类似于伸缩项目在主轴上使用justify-content

align-content: flex-start | flex-end | center | space-between | space-around | stretch

1)flex-start伸缩项目向交叉的起始位置靠齐

2)flex-end伸缩项目向交叉轴的起始位置靠齐

3)center伸缩项目向交叉轴的中间位置靠齐

4)space-between伸缩项目在交叉轴中平均分布

5)space-around伸缩项目在交叉轴平均分布且两边各有一半空间

6)strech伸缩项目将会在交叉轴上伸展以占用剩余空间

order

用于定义排列顺序数值越小排列越靠前默认值为0

flex-grow

标签: 伸缩项目ltview