`
keren
  • 浏览: 1564208 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex中的布局

    博客分类:
  • Flex
阅读更多
http://varnow.org/?p=131
首先说说Flex中的元素分类,从功能层面可以把Flex中的元素分为组件(Components)和容器(Containers)两大类:
组件 - 是指那类具有明确交互或数据展示功能的元素,例如Button、Checkbox、Datagrid、List等。
容器 - 是指那类用来放置其他元素的元素,容器往往不具有特定的交互功能,主要的功能就是容纳元素。容器再细分又可以分为布局(Layout)容器和导航(Navigator)容器,其中布局容器的功能就是用来布局界面元素的,例如Application、Panel等;导航容器主要用于进行功能性的导航,进行界面切换,例如TabNavigator等。

FLex中的布局即指布局容器的布局方式,按布局特点我这里将布局分了两大类:基础布局和特殊布局。

基础布局 - 基于layout属性和constraint-based的布局,例如Application、Panel、Canvas等容器。

特殊布局 - 基于容器的功能,不同的容器具有非常特征明显的布局方式,例如Form、Grid、HDividedBox等。

基础布局
1. layout属性

通过容器的layout属性来设置布局方式,主要包括以下几种:

(1)vertical - 从上至下依次将子元素垂直放置在单一一列中,而水平对齐方式可以通过horizontalAlign来设置,垂直对齐方式可以通过verticalAlign来设置。

(2)horizontal - 从左至右依次将子元素水平放置在单一一行中,而水平对齐方式可以通过horizontalAlign来设置,垂直对齐方式可以通过verticalAlign来设置。

(3)absolute - 通过设置每个子元素的x/y属性来定位每个子元素,而容器不会自动调整子组件的位置。

2. constraint-based

在容器的layout属性设置为absolute的情况下(Canvas除外,因为Canvas只有absoulte一种布局方式,因此Canvas默认如此),可以使用constraint-based布局。这种布局方式是通过子元素的4条侧边以及2条中心线与容器相应侧边和中心线的偏移量来决定子元素的定位的。相应的属性设置如下:

(1)left - 子元素左边离容器左侧的距离
(2)right - 子元素右边离容器右侧的距离

(3)top - 子元素顶边离容器顶部的距离

(4)bottom - 子元素底边离容器底部的距离

(5)horizontalCenter - 子元素水平中心线相对于容器水平中心线的偏移量,正数表示向容器底部方向的偏移,负数表示向容器顶部方向的偏移。

(6)verticalCenter - 子元素垂直中心线相对于容器垂直中心线的偏移量,正数表示向容器右侧的偏移,正数表示向容器左侧的偏移。
*说明:horizontalCenter、verticalCenter的优先级比其他四个属性的优先级更高,即当设置了horizontalCenter、verticalCenter,其他四个属性将被忽略。此外,Constraint-based布局必须在absolute的基础布局中才有效。由于Canvas容器的布局有且仅有absolute的,因此在Canvas中可以直接使用Constraint-based布局,而在其他容器中需要将layout属性设置为absolute后Constraint-based布局才有效,而且使用了Constraint-based布局后,设置x/y坐标将不再有意义。
特殊布局
1. Box

在absolute布局中,子元素的位置不会随着容器的大小的变化而重新调整,这在窗口大小发生变化可能会对界面的布局产生不可预料的影响,很多情况下希望子元素的位置能够随容器的大小变化而自动调整,Box布局就可以满足这个需求。Box布局分为HBox和VBox,其中HBox布局与设置容器layout为horizontal是一致的,将子元素水平排列在一行中,而VBox则是将子元素垂直排在一列中。

2. DividedBox

分为HDividedBox和VDividedBox,DividedBox会将子元素划分为一个独立的分区,并且各个分区之间会存在一条调整栏,通过调整栏用于可以手动的调整各个分区的大小。

3. Tile

与HBox类似,也会将子元素水平放置,不过不同的是tile并不将所有子元素放置在单独一行,而是在即将超过tile的宽度时进行换行。

4. Grid

与HTML中的Table很相似,可以定义行数、列数,并选择一个单元格来放置子元素。

5. Form

表单容器,用于构建表单,生成特定的表单布局。
分享到:
评论

相关推荐

    小程序源码 FlexLayout布局 (代码+截图)

    小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 Flex...

    微信小程序 FlexLayout布局 (源码)

    微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小...

    微信小程序的FlexLayout布局实例.rar

    本源代码将研究学习微信小程序的FlexLayout布局实例,微信小程序界面设计实例,是一种流布局的实现例子,而不是大家熟悉的盒子式布局,据说即使需要深层的嵌套,FlexLayout布局的响应速度也不会超过1ms,可谓是非常...

    CSS的flex布局.ppt

    网页布局(layout)是CSS的一个重点应用。... 2009年,W3C提出了一种新的方案—-Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。

    基本布局_flex基本布局模板_flex_

    可以实现flex布局的基本功能,flex的基本布局模板

    flex 页面布局教程

    flex 页面布局教程 详细介绍了页面的各个组件

    flex 弹性布局,最后一行数量不足一行 列表项目左对齐的解决办法

    flex 弹性布局,最后一行数量不足一行 列表项目左对齐的解决办法,经过实际测试,亲自有效,一行的数量可以随意设置。非常有用!

    Flex布局让子项保持自身高度的实现

    在用了Flex布局会发现,当水平排列后,会发现所有子项的高度都变成一样的了。   这是因为Flex 布局会默认: 把所有子项变成水平排列。 默认不自动换行。 让子项与其内容等宽,并把所有子项的高度变为最高子项的...

    微信小程序 - FlexLayout布局源码.zip

    微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip ...

    Flex 布局教程

    Flex 布局教程 Flex 布局教程 Flex 布局教程 Flex 布局教程 Flex 布局教程

    微信小程序——FlexLayout布局(截图+源码).zip

    微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——...

    微信小程序源码 FlexLayout布局(学习版)

    微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 ...

    flex弹性布局的理解。

    1. 什么是 flex 布局 2. 基本概念 3. 容器的属性 4. 项目的属性1. 什么是 flex 布局 2. 基本概念 3. 容器的属性 4. 项目的属性 帮助理解项目属性 1. order 2. flex-grow 3. flex-shrink 4. flex-basis 5. flex 6. ...

    flex布局布局篇

    高清非扫描版本,特别适合放在kindle中看,非常好适合初始上手快

    Flex超炫布局 和win7的效果一样

    Flex超炫布局 和win7的效果一样 Flex超炫布局 和win7的效果一样 Flex超炫布局 和win7的效果一样 导入IDE后可以直接运行

    微信小程序+Flex布局示例源代码

    微信小程序,Flex布局示例源代码,包括横向布局,纵向布局,基本涵盖了Flex布局的知识点,有相关的页面布局需求,可以直接拿来使用。

    display: flex弹性布局

    display: flex弹性布局

    携程网站 移动端 Flex布局

    携程网站 移动端 Flex布局,新人可以利用此资源来学习flex布局的应用 Flexible Box 模型,通常被称为 flexbox,是一种一维的布局模型。它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力。本文给出了 ...

    flex布局实战搭建网页页面

    html+css,使用flex布局搭建页面,纯前端,初学党可借鉴学习如何使用flex布局页面

    flex布局.html

    flex布局.html

Global site tag (gtag.js) - Google Analytics