Fittables

Fittable包帮助你创建布局更合理的使用可用空间(app都有这样的布局需求,但使用以前的web技术很难做到这一点)。个人观点,现在移动Web开发框架中有很多都支持自适应布局,如senchatouch,但是enyo的这种方式在创建复杂的页面时依旧很容易实现。

FittableColumns and FittableRows

FittableColumns 和FittableRows control 使你可以定义视图的各子部分的行列布局。在一个view中你可以使用可用空间来扩展一个child,而它的兄弟保留原来的大小样式。

要标记一个child control的大小范围,须将它的fit属性设置为true,例如:

enyo.kind({

kind: "FittableColumns",

components: [

{content: "1"},

{content: "2", fit: true},

{content: "3"}

]

});

FittableColumnsLayout and FittableRowsLayout

另一种使用fittable布局策略的方法是将kind的layoutkind属性设置为"FittableColumnsLayout" 或 "FittableRowsLayout":

enyo.kind({

kind: enyo.Control,

layoutKind: "FittableColumnsLayout",

components: [

{content: "1"},

{content: "2", fit: true},

{content: "3"}

]

});

FittableColumnsLayout和FittableRowsLayout都是直接从 enyo.FittableLayout继承来的( 它提供了基本的定位和边界逻辑)

Nested Fittables

由于需要,fittable view有时需要嵌套,如下例:

enyo.kind({

name: "NestedFittablesExample",

kind: "FittableRows",

components: [

{content: "Top", allowHtml: true, classes: "outer-box"},

{content: "Middle", allowHtml: true, classes: "outer-box"},

{kind: "FittableColumns", fit: true, classes: "outer-box", components: [

{content: "Left", classes: "inner-box"},

{content: "Fits!", fit: true, classes: "inner-box"},

{content: "Right", classes: "inner-box"}

]}

]

});

出于完整性,给出css样式:

.outer-box {

border: 2px solid orange;

padding: 4px;

white-space: nowrap;

overflow: hidden;

margin-top: 3px;

margin-bottom: 3px;

}

.inner-box {

border: 2px solid lightblue;

padding: 4px;

white-space: nowrap;

overflow: hidden;

margin: 2px;

}

Parting Thoughts

如果你认为fittables听起来很像一个有限的版本的CSS灵活箱模型,你是对的。我们的主要目标是提供一种功能像Flex并且跨浏览器的fittables布局模型。我们也要让尽可能少的限制在CSS样式的子组件,并谨慎使用JavaScript(我们使用它来计算fittable高度的元素,否则将由浏览器来决定布局样式)。

我们想强调,你应该只使用fittables当你需要视图来扩张和收缩来适合可用的空间。如果你只是想安排元素水平或垂直,你最好使用标准的Web布局技术。

你可以在Sampler app 中看到enyo fittables自适应布局的一些示例程序。你也可以在enyo的解压包lib\layout\fittable\samples下找到一些示例并查看完整的代码。

转载于:https://www.cnblogs.com/waimai/archive/2013/02/25/2932757.html

enyo官方开发入门教程翻译一Layout之Fittables相关推荐

  1. enyo官方开发入门教程翻译一Controls之Buttons

    Buttons Onyx提供了种类丰富的button.本文将介绍最常用的几类button. onyx.Button onyx.Button直接从enyo.button继承而来,提供同样的基本功能. { ...

  2. IntelliJ IDEA开发入门教程

    IntelliJ IDEA开发入门教程 本系列教程从 IntelliJ IDEA 的安装.卸载.软件设置.项目配置等各个方面进行讲解.通过本系列教程的学习,也希望你能爱上 IntelliJ IDEA, ...

  3. 【Arduino】开发入门教程【一】什么是Arduino

    Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...

  4. Arduino可穿戴开发入门教程LilyPad介绍

    Arduino可穿戴开发入门教程LilyPad介绍 Arduino输出模块 LilyPad官方共提供了4种输出模块,他们分别是单色LED模块(图1.5).三色LED模块(图1.6).蜂鸣器模块(图1. ...

  5. Arduino可穿戴开发入门教程(大学霸内部资料)

    Arduino可穿戴开发入门教程(大学霸内部资料) 试读下载地址:链接:http://pan.baidu.com/s/1mg9To28 密码:z5v8 介绍:Arduino可穿戴开发入门教程(大学霸内 ...

  6. ActiveReports 报表控件官方中文入门教程 (2)-创建、数据源、浏览以及发布

    ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 原文:ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 本篇文章将阐述 ...

  7. UWP开发入门教程备忘

    UWP-01~03 略~ UWP-04 - 什么是XAML? XAML - 遵循XML语法,XAML实际上是在创建类的实例,并给它们设定属性值,用于定义UI UWP-05 - 类型转换器 类型转换器 ...

  8. Android百度地图开发入门教程

    Android百度地图开发入门教程 1.平台注册登录 2.创建应用 3.Android studio配置 4.代码编写 5.最终效果(建议真机) 1.平台注册登录 登录百度地图开放平台网站注册并登录 ...

  9. 傻瓜式Android APP开发入门教程

    这篇文章主要介绍了Android APP开发入门教程,从SDK下载.开发环境搭建.代码编写.APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教程,android各种机子和rom的 ...

最新文章

  1. linux内核参数注释与优化
  2. LeetCode Coin Change(动态规划)
  3. UVA11054Gergovia的酒交易
  4. SQL注入学习——时间盲注详解 sqli-labs(Less 9)
  5. jsp获取多个checkbox的值
  6. java常用class类_java常用类
  7. Linux学习笔记之系统路径和命令
  8. requests-使用代理proxies
  9. window dockor mysql_windows下docker安装mysql
  10. 使用Freetype发现的问题记录
  11. html flex上下居中,CSS3 Flex实现元素的水平居中和垂直居中
  12. ECS 7天实践训练营-day1
  13. 程序员被PUA的一天有多可怕......35 岁,真的是职场荣枯线吗?
  14. 2022.11.05 第六次周报
  15. 笔记:A Novel Representation of Parts for Accurate 3D Object Detection and Tracking in Monocular Images
  16. Cesium中自定义材质material
  17. 【学习记录】QQZone项目 part1
  18. 2.Cocos跑酷游戏——工具篇 Dictionary
  19. 【ML特征工程】第 2 章 :简单数字的花式技巧
  20. 全志V40/A40I的lichee 的编译

热门文章

  1. cifs------网络文件系统(1)
  2. 数据通信技术(十:OSPF特殊区域TOTALLY STUB配置(ZTE))
  3. 域渗透提权之MS14-068
  4. linux用户在哪个文件夹,LINUX中用命令成功建立一个用户后信息会记录在哪个文件中...
  5. 散列基础知识总结(思维导图)
  6. (C++)1010 一元多项式求导 --需二刷
  7. Parcelable与Serializable的比较
  8. (C++)1008 数组元素循环右移问题
  9. Python培训教程分享:10款超好用的Python开发工具
  10. 什么样的人适合学习UI?