Flex布局基础

对于Flex 初学者,在Hello World之后,Flex布局便是下一站学习要的要义。若是从传统的Html转变而来,总希望找到类似于Div/Table/UL等之类的控件,也希望在 Flex中可以像Dreamweaver一样可以拖拽控件;而如果是从Windows Application程序转变而来,则可能更喜欢Absolute布局,让控件散落于页面之上,通过x/y控制其坐标。这种做法让Html设计师觉得可 笑,但我见过有人确实用VS这么做过。

喜欢Div的朋友,可能觉得Box很亲切;喜欢用Table的设计师,对不起,Flex没有Table,Grid虽与之极像,但不宜用来布 局;Application程序员也不要图行事,使用Absolute布局,这种布局不宜开发Web应用,如果只是开发桌面版则无关紧要。

本节写了三个Demo:

◆Absolute布局

◆Hbox布局

◆VBox布局(与前者统称Box布局)

如果开发AIR程序或者桌面应用,可以选择Absolute布局;但如果开发Web应用,推荐学习、研究Box布局。右击可以查看源码。

一、Flex布局之Absolute

用Flex新建Application时,最下面有一个布局属性选项:Vertical,Horizontal,Absolute。意思如单词。若 选择Absolute,则Application的子控件依据其{x,y}坐标依靠。但不影响第二代子控件,即,如果放一个HBox到该 Application中,HBox中的控件则水平排列。Horizontal与Vertical相当于把Application做为一个水平或竖向的盒 子(Box),对子、孙控件的影响关系与Absolute类似。

查看Absolute,不难发现,可视区域的宽度是一定的,无论在何种分辨率下,何种浏览器宽度。但在Web应用中,我们不希望出现这样的效果。相 反,我们可能希望控件可以按照百分比自动调整位置。只此一条,开发Web应用,便不建议使用Absolute布局。由此便产生了方便、简单、易用的Box 布局。

二、Flex布局之Hbox

HBox让子控件按水平方向自动排列,居右、居左或居中都可以。

查看Hbox,控件与前者没有增减,同样的控件。但它可以自适应浏览器宽度。文章的标题栏部分用了一个HBox,其包涵三个子控 件:Label,Spacer与LinkButton.Spacer的宽度设为100%,这样无论Label无多少字符,多宽,都可以把 LinkButton撑到最右边。同样,也可以把它用在VBox中,则设置其高为100%。Spacer在Box布局中非常实用。
细心的朋友不难发现,这个Application的layout属性是Vertical,整个App相当于一个VBox。最下面的评论文本框与按纽也在一个HBox之内。

三、Flex布局之VBox

VBox让子控件在竖直方向上排列。top,bottom or center。

查看VBox,这个App的layout是Horiazontal,相当于一个HBox。一级控件是两个VBox,一左一右。左边与前面的HBox 对应的部分类似。右边用Panel与TitleWindow,还有Grid,Tile。Panel与TitleWindow都具有layout属性,可以 在其内部放置任何子控件,待遇与Application同。值得一提的是Tile,它可让子控件流动延伸,先在x轴上排行,满了之后再换行。 TileList与其类似。

Grid酷似html中的Table,但差别很大,也不适合做布局用。实际应用中,也常用Tile或TileList代替。
Box布局可以满足基本的项目应用,但有一些问题。譬如,文章内容要滚动显示,能不能像Html那样实现流布局?答案是可以的。Box布局只是基本的布局方法,并没有发挥Flex的长处与优势。关于State与流布局在稍后。
在商业项目开发中,Application99%都使用absolute布局,中间所用的容器间有box,tile或其它布局。

三大Flex布局用法(转载)的更多相关文章

  1. 理解CSS3里的Flex布局用法

    一.Flex布局是什么? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box{ disp ...

  2. Flex 布局教程转载

    Flex 布局教程:语法篇 http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html Flex 布局教程:实例篇 http://www.ruan ...

  3. Flex布局(转载)

    网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...

  4. Flex 布局相关用法

    前言: 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 就不容易实现. 2009年,W3C提出了 ...

  5. 转载: Flex 布局教程

    demo:页面二等分 .flex-box { display: -webkit-flex; /* Safari */ display: flex; flex-direction: row; justi ...

  6. flex布局常见用法小结

    1,display:flex 这个在父容器中声明: 2,flex-direction:row / column 默认为横向,也在父容器中设置,定义flex布局的主轴方向:一条轴为主轴,那么另一条轴自然 ...

  7. CSS的flex布局(转载)

    我们之前已经学过一些布局模型,比如说浮动,绝对定位等等,但是这些布局方式一是不够简洁,而是使用的范围确实是太窄了. flex模型拥有比较多的属性,来设置多样的布局方式,接下来我们就详细介绍各种属性对布 ...

  8. 转载《Flex 布局》

    网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...

  9. CSS3弹性伸缩布局(二)——flex布局

    上一篇博客<CSS3弹性伸缩布局(一)——box布局>介绍了旧版本的box布局,而这篇博客将主要介绍最新版本的flex布局的基础知识. 新版本简介 新版本的Flexbox模型是2012年9 ...

随机推荐

  1. Django-Python3-Celery 异步任务/定时任务

    1. 目录结构 2. setting设置: 3. project/project/celery.py 4. project/project/__init.py 5.任务分配 6. 代码实现 View ...

  2. (37)Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】

    [本文章是否对你有用以及是否有好的建议,请留言] 写后感:博主写这么一系列文章也不容易啊,请评论支持下. 如果看过我之前(35)的文章这一篇的文章就会很简单,没有什么挑战性了. 那么我们先说说这一篇文 ...

  3. mysql 服务器监控系列-黄杉 mysqldba

    http://blog.csdn.net/mchdba/article/category/2220809

  4. javascript学习笔记(一)-廖雪峰教程

    一. 基础 1.for in,for of和forEach 遍历的是对象的属性,因为数组也是对象,其内部的元素的索引就是其属性值.用该方式遍历数组就是获取了数组中的每一个元素的索引值(从0開始). 而 ...

  5. JavaFX本地应用自己主动更新功能的实现FXLauncher

    JavaFX本地应用自己主动更新功能的实现--FXLauncher 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一. ...

  6. Linux GDB程序调试工具使用简单介绍

    GDB概述 GDB是GNU开源组织公布的一个强大的UNIX下的程序调试工具.也许,各位比較喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但假设你是在UNIX平台下做软件,你会发现GDB这个调试 ...

  7. 安装多个版本号jdk后java -version不改变的问题解决

    1.问题 比方先安装了jdk7后,再安装jdk6,java -version就是显示java1.6,即使把JAVA_HOME和path改动为java7的路径,java -version依旧还是显示6. ...

  8. hdoj--1176--免费馅饼(动态规划)

    免费馅饼 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status D ...

  9. JS函数种类详解

    1. 普通函数1.1 示例 1 2 3 function ShowName(name) {   alert(name); } 1.2 Js中同名函数的覆盖 在Js中函数是没有重载,定义相同函数名.不同 ...

  10. python 编写的经纬度坐标转换类

    # -*- coding: utf-8 -*- # /** # * 各地图API坐标系统比较与转换; # * WGS84坐标系:即地球坐标系,国际上通用的坐标系.设备一般包含GPS芯片或者北斗芯片获取 ...