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

三大Flex布局用法

阅读更多

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布局笔记.docx

    关于Flex布局的笔记整理,能够详细理解Flex布局原理和用法,仅供自己学习。

    微信小程序Flex布局用法深入浅出分析

    本文实例讲述了微信小程序Flex布局用法。分享给大家供大家参考,具体如下: Flex布局: Flexible Box的缩写,意为“弹性布局”,为盒模型提供巨大的灵活性 使用说明: 1. 任何容器都可以使用flex布局 .box { ...

    flex-layout-demo:Flex布局教程,包含示例代码

    Flex布局为盒子模型提供了很大的灵活性,任何一个容器都可以指定为Flex布局,设置方法为:.box{display: flex;}行内元素使用Flex布局.box{display: inline-flex;}在webkit内核的浏览器上必须加上webkit前缀.box{...

    Vue2 常用用法-css flex布局遇到的问题

    css flex布局遇到的问题

    使用Flex布局实现头部固定内容区域滚动的方法

    页面头部固定布局以前用 position:fixed实现,如今可以用flex布局实现,快捷方便。 Flex布局好处:1.不破坏html文档流 2.兼容性更好。 display: flex 和 display: -webkit-box 仅是各阶段命名,并没有区别。 ...

    运用Grid或者flex布局制作页面

    a.掌握Grid或者flex布局的使用方法。 b.熟悉css3的使用方法 其中: 图标请自己找类似的,或者换成你喜欢的照片。 如果上面的布局太简单,请设计一个你喜欢的类似上面风格的页面。

    flex布局的使用方法.pdf

    本资源帮助最初步的学者来提供很好的学习flex属性的使用方法并介绍啦一些列的对齐方法和案例。

    Flex布局做出自适应页面(语法和案例)

    Flex布局为盒子模型提供了很大的灵活性,任何一个容器都可以指定为Flex布局,设置方法为: .box{ display: flex; } 行内元素使用Flex布局 .box{ display: inline-flex; } 在webkit内核的浏览器上必须加上webkit...

    微微信小程序开发教程:Flex布局信小程序架构分析《三》:实现过程以及实时

    微信小程序页面布局方式采用的是Flex布局。 Flex布局,是W3c在2009年提出的一种新的方案,可以简便,完整,响应式的实现各种页面布局。...微信小程序实现了Flex布局,简单介绍下Flex布局在微信小程序中的使用

    移动端优先的flex三栏布局的使用方法

    felxbox布局是css3里新出的一个,它就是为了解决上述两种方式的不足出现的,是比较完美的一个。目前移动端的布局也都是用... 这篇文章主要介绍了移动端优先的flex三栏布局的使用方法,感兴趣的小伙伴们可以参考一下

    flex弹性布局用法笔记

    flex弹性布局display:flex介绍1.flex-direction:row|row-reverse|column|column-reverse|initial|inherit (盒子排列方向)2.flex-wrap: nowrap|wrap|wrap-reverse(拆行或拆列)附加:flex-flow(1,2的结合写法)3....

    官方问答精选《十五》ios8不支持flex布局,客服接口接收参数

    答: 是这样的,ios8不完全支持flex布局,需要加-webkit参数才能识别,社区一个哥们给的方法是css全部放在wxss里面,就会自动加相关参数 我的项目按照这个方法,成功解决了ios8下面 ...       问题: 体验小程序demo...

    详解flex布局中flex-grow与flex-shrink的计算方式

    CSS 中的 Flex(弹性布局) 可以很灵活的控制网页的布局,其中决定 Flex 布局内项目宽度/高度的是三个属性: flex-basis, flex-grow, flex-shrink. flex-basis  flex-basis 决定了项目占据主轴的空间,除非使用 box-...

    flex 分页控件,我自己写的flex分页控件

    这是我自己写的一个flex组件,使用简单,在使用的时候,只需要在页面载入里,新建组件对象就OK,另外还有一个方法监听控件返回的的页数,可以实现分面。flex会生成linkButton,并且可以按需要控件显示的数量。如有不...

    Flex 4 Cookbook

    Flex 框架提供了可视化布局,视觉效果,数据网格,服务器通信,图表组件等等。 一个庞大的Flex框架,任何企图掩盖书在任何深度的整个框架将毫无疑问在某些方面或另一个失败。考虑到这一点,我们做了一个企图掩盖的...

    移动端Web页面的CSS3 flex布局快速上手指南

    1、开始使用flexbox布局的方法,代码如下: CSS Code复制内容到剪贴板 footer{ display:flex; }  2、接下来为footer添加flex-flow属性: CSS Code复制内容到剪贴板 flex-flow:row wrap;  row表示按行显示,...

    react-row:React 组件创建用于通过使用 flex 构建基于行和列(可选可调整大小)的复杂布局

    通过使用flex来创建基于行和列(可选可调整大小)构建复杂布局的 React 组件。 概述 这个想法很简单。 您将子组件添加到并且每个子组件都将附加到单独的列中。 每个充当容器,在其中自动计算其尺寸并更改 flex 值。 ...

    可以用在网页上flex 图片轮播,带源码.使用非常简单

    可以结合asp.net坐在网页中使用!带源码!使用方法是用asp.net做后台改变源码BIN文件夹中的图片.

Global site tag (gtag.js) - Google Analytics