ExtJS 有一个非常有用的布局机制叫做 flex。它通过将行或列中的所有事物相加来工作。然后使用 flex 值除以所有 flex 值的总和来分配空间。这会产生如下布局:
红色框是 hbox 布局,块 E 和 F 具有给定的 flex 值,总和为 3,因此 E 获得屏幕宽度的 1/3,F 获得 2/3。
Blue box 是另一种 hbox 布局,其中所有 4 个部分 (AD) 具有相同的 flex,因此每个部分获得 25% 的空间。
没有显示的是周围的 vbox 布局,其中蓝色盒子的 flex 为 22,红色盒子的 flex 为 78。
Angular中有这种布局吗?如果没有,您将如何在 Angular 中将其组合在一起?
基于以下一些答案的附加信息:
我希望能够用 Angular 替换 extjs。为此,我需要一些我在 extjs 中拥有的功能,而我不知道 Angular 中存在这些功能。我已经找到了观察屏幕尺寸、更改以调整整体显示尺寸的方法,但我还没有看到一个很好的指令示例,该指令基本上自省其组成指令的该 flex 值并根据大小设置它们的大小容器的更改事件。Flex 在 div 内部不起作用,它在 div 的容器内部起作用,因为它必须遍历容器中的所有 div 才能正确划分空间。我还没有看到这样做的角度指令。
我还没有使用 Angular 的实际开发经验(我看过很多来自http://egghead.io的视频,我读过文档和教程,听过这个播客:JSJ-Angular),所以我没有知道这是容易解决的问题,还是难以解决的问题,或者是否有人已经解决了。这种 flex 布局非常酷且易于使用,实际上对于整页应用程序,我不确定是否有更简单的方法来布置它们,以便它们保持全屏并且可以适应屏幕大小的变化。网格系统在某些方面非常有用,但它们并没有解决弹性系统解决的问题。
我正在尝试看看是否有一种方法可以从 extjs 飞跃到 Angular,而不会真正让我的生活变得困难。
额外发现的信息:
看起来 flex 现在正在以 CSSdisplay: flex
或display: inline-flex
(目前带有前缀)的形式成为一种显示类型
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes
有趣的是,看插图称它为Holy Grail Layout example
. 当然 IE 不会正确或及时地实现它,但我的客户不介意使用 Chrome,如果它完成了工作。