• 布局样式
    • Flex布局
      • 弹性盒子
      • 布局方向
      • 对齐方式

    布局样式

    Weex支持盒模型Flexbox布局,都是基于CSS的标准来实现的,但远没有传统CSS那么灵活和好用,也许是受限于android 和iOS 平台原生层面布局能力的影响。在使用 buiweex的 样式之前,请先了解 【通用样式】 【文本样式】

    Flex布局

    弹性盒子

    框架提供了一组class,分别是 flex1 ~ flex12,定义 flex成员可以占用容器剩余空间的大小。注意区别于web层面的12栅格布局,这里仅仅是 原生层面 布局权重(layout_weight)的概念。如下图:

    布局样式 - 图1   布局样式 - 图2

    1. <div>
    2. <div class="flex1"></div>
    3. <div class="flex1"></div>
    4. </div>

    以上代码表示每个成员项占用 一半的空间。

    1. <div>
    2. <div class="flex1"></div>
    3. <div class="flex2"></div>
    4. <div class="flex3"></div>
    5. </div>

    以上代码表示将父亲容器分成5等分,分别占用1份,2份,3份。

    布局方向

    框架提供了 flex-rowflex-cloumn 来控制flex布局方向。另外,也可以通过flex-fluid 来达到自动换行(流式布局)的效果。

    felx-row: 从左到右排列,主轴是横向

    1. <div class="flex-row">
    2. <div class="flex1"></div>
    3. <div class="flex1"></div>
    4. <div class="flex1"></div>
    5. </div>

    felx-column: 从上到下排列,主轴是纵向

    1. <div class="flex-column">
    2. <div class="flex1"></div>
    3. <div class="flex1"></div>
    4. <div class="flex1"></div>
    5. </div>

    flex-fluid: 流式布局,通常成员项是固定宽度

    1. <div class="flex-row flex-fluid">
    2. <div class="ma"></div>
    3. <div class="ma"></div>
    4. <div class="ma"></div>
    5. <div class="ma"></div>
    6. <div class="ma"></div>
    7. </div>
    8. <style>
    9. .ma{
    10. width:200px;
    11. height:100px;
    12. margin-right:30px;
    13. background-color: red;
    14. }
    15. </style>

    对齐方式

    框架提供了一组class,用于进行布局对齐:

    居中对齐

    1. .center{
    2. justify-content: center;
    3. align-items: center;
    4. }

    纵向布局

    1. .column-center-top{
    2. align-items: center;
    3. }
    4. .column-center-bottom{
    5. justify-content: flex-end;
    6. align-items: center;
    7. }
    8. .column-center-left{
    9. justify-content: center;
    10. align-items: flex-start;
    11. }
    12. .column-center-right{
    13. justify-content: center;
    14. align-items: flex-end;
    15. }
    16. .column-left-top{
    17. justify-content: flex-start;
    18. align-items: flex-start;
    19. }
    20. .column-right-top{
    21. justify-content: flex-start;
    22. align-items: flex-end;
    23. }
    24. .column-left-bottom{
    25. justify-content: flex-end;
    26. align-items: flex-start;
    27. }
    28. .column-right-bottom{
    29. justify-content: flex-end;
    30. align-items: flex-end;
    31. }
    32. .row-space-between{
    33. justify-content: space-between;
    34. align-items: center;
    35. }

    横向布局

    1. .row-center-top{
    2. justify-content:center;
    3. align-items: flex-start;
    4. }
    5. .row-center-bottom{
    6. justify-content: center;
    7. align-items: flex-end;
    8. }
    9. .row-center-left{
    10. justify-content: flex-start;
    11. align-items: center;
    12. }
    13. .row-center-right{
    14. justify-content: flex-end;
    15. align-items: center;
    16. }
    17. .row-left-top{
    18. justify-content: flex-start;
    19. align-items: flex-start;
    20. }
    21. .row-right-top{
    22. justify-content: flex-end;
    23. align-items: flex-start;
    24. }
    25. .row-left-bottom{
    26. justify-content: flex-start;
    27. align-items: flex-end;
    28. }
    29. .row-right-bottom{
    30. justify-content: flex-end;
    31. align-items: flex-end;
    32. }