[移动web]弹性布局(一.旧版)

概述: 弹性布局

  • 2009年,W3C提出了一种崭新的方案----Flex布局(即弹性伸缩布局),它可以简便、完整、响应式地实现各种页面布局,包括一直让人很头疼的垂直水平居中也变得很简单地就迎刃而解了。但是这个布局方式还处于W3C的草案阶段,并且它还分为旧版本box、新版本flex以及混合过渡版本flexbox三种不同的编码方式。其中混合过渡版本主要是针对IE10做了兼容。目前flex布局用得比较多的还是在移动端的布局

一.旧版兼容情况

旧版弹性布局.png

二.旧版父容器相关属性

  • 旧版本的弹性布局有两个属性值:
  display: box;  : 将容器盒模型作为块级弹性伸缩盒显示
  display: inline-box;  : 将容器盒模型作为内联级弹性伸缩盒显示
  • box-orient: 设置box内部item的流动方向。
horizontal : items从左到右水平排列
vertical :   items从上到下垂直排列
inline-axis :items沿着内联轴排列显示(同horizontal)
block-axis : items沿着块轴排列显示(同vertical)
  • box-direction: 设置box中的item流动顺序。
normal(默认) :从左向右
reverse: 从右向左
  • box-pack 设置box中水平方向的item分布方式(靠左/右, 居中, 平均分布)
start   :  items以起始点靠齐(左对齐)
  end  :  items以结束点靠齐(右对齐)
center:  items以中心点靠齐(居中)
justify :  item平均分布
  • box-align 设置box中垂直方向的item的对齐方式。
     start  : items 在box顶部对齐
     end    : items 在box底部对齐
   center : items 全部垂直居中
baseline : items中的文字全部垂直对齐,对应的item跟随变化位置
stretch  : 默认值,效果与start类似

三.旧版item相关属性

  • box-flex: 属性可以使用浮点数分配伸缩项目的比例。此属性是给容器内的项目设置的,它们会基于父容器的宽度来分配它们所占的比例:
取值0代表不拉伸 ;取值相等代表等比拉伸,取值越大;拉伸优先级越大
实现原理(了解): 
以水平方向分布为例, 
设box中原先分布的items在水平方向上剩余的总空间为: sum, 
而每个item对应的宽为:item.._w, 
box-flex属性= item.._bf
则分配拉伸时, 
item0的从原先的宽度 item0_w 
变为 item0_w + (sum/(item..bf 累加值) * item0_bf)

  • box-ordinal-group: 设置伸缩项目的显示位置。
显示位置优先级,越小越靠前,取值是正整数

效果详情见demo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,523评论 0 6
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,638评论 0 26
  • 阅读目录移动开发基本知识点 calc基本用法box-sizing的理解及使用理解display:box的布局理解f...
    张宪宇阅读 1,579评论 0 1
  • CSS 3中弹性盒布局的最新版概述 在CSS 3中,CSS Flexible Box模块为一个非常重要的模块,该模...
    吾名无双阅读 1,253评论 0 5