猿吟鹤唳本无意,不知下有行人行

flex弹性盒子

概述

UI3.0使用弹性盒子对页面进行布局,ui-box.css中就定义了弹性盒子的一些css3样式,弹性盒子模型是在指定大小的父容器里来为子元素分配空间,使用box架构可以更容易更方便的适配不同分辨率不同屏幕尺寸的手机

CSS Variables

Box架构

定义:
ub……
说明:
使用box弹性盒子模式对页面进行布局
例子:
ub定义元素的display属性为box。那么子元素就可以根据我们定义的比例来分配元素的空间,ub一般跟ub-f[1-4]搭配着使用

Box架构元素空间大小分配比例

定义:
ub-f……
说明:
定义不同的box-flex属性值
类别使用数字编号,定义不同的元素空间大小分配比例
例子:

ub-f1数字编号为1;定义box-flex:1
ub-f1数字编号为2;定义box-flex:2
ub-f1数字编号为3;定义box-flex:3
ub-f1数字编号为4;定义box-flex:4
ub-f[1-4]和ub搭配着使用

解析:
1、若子元素都使用ub-f1,那么子元素等比例的分配父元素的空间大小

  1. <div class='ub c-gra uba b-bla umh5'>
  2. <div class='ub-f1 sc-bg-alert'></div>
  3. <div class='ub-f1 bc-head'></div>
  4. </div>

2、若子元素一个用ub-f1,另外一个用ub-f2.,那么子元素按照1:2的比例分配父元素的空间大小

  1. <div class='ub c-gra uba b-bla umh5'>
  2. <div class='ub-f1 sc-bg-alert'></div>
  3. <div class='ub-f2 bc-head'></div>
  4. </div>


3、若子元素分别使用ub-f1,ub-f2,ub-f3,那么子元素会按照1:2:3的比例分配父元素的空间大小

  1. <div class='ub c-gra uba b-bla umh5'>
  2. <div class='ub-f1 sc-bg-alert'></div>
  3. <div class='ub-f2 bc-head'></div>
  4. <div class='ub-f3 sc-bg-active'></div>
  5. </div>


4、若子元素中只有一个使用ub-f1,另外一个元素根据内容的多少定义大小,那么使用ub-f1的元素会自动适配元素的剩余空间大小

  1. <div class='ub c-gra uba b-bla umh5'>
  2. <div class='sc-bg-alert'>内容</div>
  3. <div class='ub-f1 bc-head'></div>
  4. </div>

ub-f[1-4]和ub搭配着使用
场景:

  1. <div class='uba b-gra c-wh us uc-a '>
  2. <div ontouchstart='zy_touch('btn-act')' class='uc-t ubb ub b-gra t-bla ub-ac lis umh4'>
  3. <div class='ub-f1 ut-s'>设置</div>
  4. <div class='tx-r t-blu ulev-1'>Old Phone</div>
  5. <div class='res8 lis-sw ub-img'></div>
  6. </div>
  7. <div ontouchstart='zy_touch('btn-act')' class=' ub ubb b-gra t-bla ub-ac lis umh4'>
  8. <div class='ub-f1 ut-s'>设置</div>
  9. <div class='tx-r t-blu ulev-1'>Old Phone</div>
  10. <div class='res8 lis-sw ub-img'></div>
  11. </div>
  12. <div ontouchstart='zy_touch('btn-act')' class='uc-b ub t-bla ub-ac lis umh4'>
  13. <div class='ub-f1 ut-s'>设置</div>
  14. <div class='tx-r t-blu ulev-1'>Old Phone</div>
  15. <div class='res8 lis-sw ub-img'></div>
  16. </div>
  17. </div>

图例:

Box架构元素垂直方向的位置排列

定义:
ub-ac,ub-ae……
说明:

ub-ac:垂直居中
ub-ae:位于底边
只有跟ub搭配着使用ub-ac,ub-ae的作用才生效

例子:
1、未使用ub-ac,ub-ae

  1. <div class='ub uinn umh4 uba b-gra uc-a'>
  2. <div class='ub-f1'>内容</div>
  3. <div class='res8 lis-sw ub-img'></div>
  4. </div>


2、使用ub-ac

  1. <div class='ub uinn umh4 uba b-gra uc-a ub-ac'>
  2. <div class='ub-f1'>内容</div>
  3. <div class='res8 lis-sw ub-img'></div>
  4. </div>


3、使用ub-ae

  1. <div class='ub uinn umh4 uba b-gra uc-a ub-ae'>
  2. <div class='ub-f1'>内容</div>
  3. <div class='res8 lis-sw ub-img'></div>
  4. </div>


场景:

  1. <div class='uba b-gra c-wh us uc-a '>
  2. <div ontouchstart='zy_touch('btn-act')' class='uc-t ubb ub b-gra t-bla ub-ac lis'>
  3. <div class='lis-icon ub-img im'></div>
  4. <div class='ub-f1 ut-s'>设置</div>
  5. <div class='tx-r t-blu ulev-1'>Old Phone</div>
  6. <div class='res8 lis-sw ub-img'>></div>
  7. </div>
  8. <div ontouchstart='zy_touch('btn-act')' class=' ub ubb b-grat-bla ub-ac lis'>
  9. <div class='lis-icon ub-img im'></div>
  10. <div class='ub-f1 ut-s'>设置</div>
  11. <div class='tx-r t-blu ulev-1'>Old Phone</div>
  12. <div class='res8 lis-sw ub-img'></div>
  13. </div>
  14. <div ontouchstart='zy_touch('btn-act')' class='uc-b ub t-bla ub-ac lis'>
  15. <div class='lis-icon ub-img im'></div>
  16. <div class='ub-f1 ut-s'>设置</div>
  17. <div class='tx-r t-blu ulev-1'>Old Phone</div>
  18. <div class='res8 lis-sw ub-img'></div>
  19. </div>
  20. </div>

图例:

Box架构元素水平方向的位置排列

定义:
ub-pc,ub-pe,ub-pj……
说明:

ub-pc:水平居中
ub-pe:位于末尾
ub-pj:两端对齐
只有跟ub搭配着使用ub-pc,ub-pe,ub-pj的作用才生效

例子:
1、未使用ub-pc,ub-pe,ub-pj

  1. <div class='uinn2 c-gra ub'> <div class='umh5 umw3 sc-bg-alert'></div>
  2. <div class='umh5 umw3 bc-head'></div>
  3. <div class='umh5 umw3 sc-bg-active'></div>
  4. </div>

2、使用ub-pc

  1. <div class='uinn2 c-gra ub-pc ub uba b-bla'>
  2. <div class='umh5 umw3 sc-bg-alert'></div>
  3. <div class='umh5 umw3 bc-head'></div>
  4. <div class='umh5 umw3 sc-bg-active'></div>
  5. </div>


3、使用ub-pe

  1. <div class='uinn2 c-gra ub-pe ub uba b-bla'>
  2. <div class='umh5 umw3 sc-bg-alert'></div>
  3. <div class='umh5 umw3 bc-head'></div>
  4. <div class='umh5 umw3 sc-bg-active'></div>
  5. </div>


4、使用ub-pj

  1. <div class='uinn2 c-gra ub-pj ub uba b-bla'>
  2. <div class='umh5 umw3 sc-bg-alert'></div>
  3. <div class='umh5 umw3 bc-head'></div>
  4. <div class='umh5 umw3 sc-bg-active'></div>
  5. </div>

Box架构元素垂直排列

定义:
ub-ver….
说明:
ub-ver:定义元素垂直排列
只有跟ub搭配着使用ub-ver的作用才生效
例子:
1、未使用ub-ver

  1. <div class='uinn2 c-gra ub uba b-bla'>
  2. <div class='umh5 umw3 sc-bg-alert'></div>
  3. <div class='umh5 umw3 bc-head'></div>
  4. <div class='umh5 umw3 sc-bg-active'></div>
  5. </div>


2、使用ub-ver

  1. <div class='uinn2 c-gra ub ub-ver uba b-bla'>
  2. <div class='umh5 umw3 sc-bg-alert'></div>
  3. <div class='umh5 umw3 bc-head'></div>
  4. <div class='umh5 umw3 sc-bg-active'></div>
  5. </div>

Box架构元素排列方向

定义:
ub-rev……
说明:
ub-rev:定义元素排列方向
只有跟ub搭配着使用ub-rev的作用才生效
例子:
1、未使用ub-rev

  1. <div class='uinn2 c-gra ub uba b-bla'>
  2. <div class='umh5 umw3 sc-bg-alert'></div>
  3. <div class='umh5 umw3 bc-head'></div>
  4. <div class='umh5 umw3 sc-bg-active'></div>
  5. </div>

2、使用ub-rev

  1. <div class='uinn2 c-gra ub ub-rev uba b-bla'>
  2. <div class='umh5 umw3 sc-bg-alert'></div>
  3. <div class='umh5 umw3 bc-head'></div>
  4. <div class='umh5 umw3 sc-bg-active'></div>
  5. </div>

Box架构实现横向滑动效果

定义:
ub-fh……
说明:
在box架构中ub-fh一般跟函数zyFlip()搭配着使用实现横向滑动效果

Box架构实现纵向滑动效果

定义:
ub-fv……
说明:
在box架构中ub-fv一般跟函数iScroll()搭配着使用实现纵向滑动效果

背景图片类别

定义:
ub-img[类别]……
说明:
前缀为ub-img
类别为数字编号,用于定义不同的背景排列方式
例子:

ub-img类别为空,定义将背景图像等比缩放到宽度或高度与容器的宽度或高度相等,背景图像始终包含在容器内
ub-img1类别为1,定义将背景图片等比例缩放到完全覆盖容器,背景图像有可能超过容器
ub-img2类别为2,定义背景图像横向平铺
ub-img3类别为3,定义背景图像纵向平铺
ub-img4类别为4,定义背景图像横向100%,纵向自适应;
ub-img5类别为5,定义背景图像横向自适应,纵向为100%
ub-img6类别为6,定义背景图像居中显示

场景:

  1. <div class='uba b-gra c-wh us uc-a '>
  2. <div ontouchstart='zy_touch('btn-act')' class='uc-t ubb ub b-gra t-bla ub-ac lis'>
  3. <div class='lis-icon ub-img im'></div>
  4. <div class='ub-f1 ut-s'>设置</div>
  5. <div class='tx-r t-blu ulev-1'>Old Phone</div>
  6. <div class='res8 lis-sw ub-img'></div>
  7. </div>
  8. <div ontouchstart='zy_touch('btn-act')' class=' ub ubb b-gra t-bla ub-ac lis'>
  9. <div class='lis-icon ub-img im'></div>
  10. <div class='ub-f1 ut-s'>设置</div>
  11. <div class='tx-r t-blu ulev-1'>Old Phone</div>
  12. <div class='res8 lis-sw ub-img'></div>
  13. </div>
  14. <div ontouchstart='zy_touch('btn-act')' class='uc-b ub t-bla ub-ac lis'>
  15. <div class='lis-icon ub-img im'></div>
  16. <div class='ub-f1 ut-s'>设置</div>
  17. <div class='tx-r t-blu ulev-1'>Old Phone</div>
  18. <div class='res8 lis-sw ub-img'></div>
  19. </div>
  20. </div>

图例:

根本的就是

<div style="width:300px; display:-webkit-box; display:box;">
<div style="-webkit-box-flex:1.0; border:1px solid #f00;">12</div>
<div style="-webkit-box-flex:2.0; border:1px solid #000;">12</div>
</div>

<div style="width:600px; display:-webkit-box;display:box;">
<div style="-webkit-box-flex:1; border:1px solid #f00"></div>
<div style="-webkit-box-flex:2; background:#ff0"></div>
</div>

 

 

发表评论

您的电子邮箱地址不会被公开。