应该通过用鼠标拖动窗格边缘来调整窗格的大小(参见上图中的箭头).
单个窗格应该具有垂直的滚动条,以防溢出内容,即没有全局浏览器窗口滚动条.
使用jQuery和jQuery UI可调整大小,我创建了this (partly working) JSFiddle.
HTML:
<div class="header"> Fixed header </div> <div class="wrapper"> <div class="inner-wrapper"> <div class="left pane">Left</div> <div class="center pane"> <div class="inner"> <div class="top">Center top</div> <div class="bottom">Center bottom</div> </div> </div> <div class="right pane">Right</div> </div> </div>
CSS:
html,body { height: 100%; } .header { position: fixed; top: 0; left: 0; right: 0; height: 20px; background-color: moccasin; } .wrapper { position:absolute; top: 21px; right: 0; bottom: 0; left: 0; background-color: fuchsia; } .inner-wrapper,.center.pane .inner { display: table; width: 100%; height: 100%; } .pane { display: table-cell; } .left.pane { background-color: olivedrab; } .center.pane { background-color: lightblue; } .center.pane .inner .top,.center.pane .inner .bottom{ display: table-row; } .center.pane .inner .top { background-color: lightcoral; } .center.pane .inner .bottom { background-color: orange; height: 100%; width: 100%; } .right.pane { background-color: #999; }
JavaScript的:
$(function () { $(".left.pane").resizable({ handles: "e,w" }); $(".right.pane").resizable({ handles: "e,w" }); $(".center.pane .inner .bottom").resizable({ handles: "n,s" }); });
它有几个问题,包括:
>当调整左侧的大小时,右还会调整大小(不应该)
>当向左大小调整为全宽时,中心内容隐藏在右侧
>当调整大小时,包装(紫红色)部分可见
>中心底部通过顶部的顶部调整大小,而不是通过自己的顶部
我知道jQuery Layout插件,但是据我所见,它并没有提供相当的布局.此外,我想保持尽可能简单.
此外,我已经尝试了Methvins拆分插件,但是无法让它工作.
我的问题:
任何建议如何创建一个布局,如图像从jQuery UI可调整大小和我在JSFiddle?
解决方法
选项1:
我个人用在我的项目UI Layout.
这是一个几乎是旧的项目(6年前),但是在2014年中期,即使在2014年9月以后没有更多的信息,它的发展重新开始.
其实最后一个稳定的版本是1.4.3,在14日发布.新网站是:
> https://github.com/allpro/layout/
选项2:
如果您需要更完整的解决方案,您可以考虑jEasy UI,这是一个完整的框架
[…] helps you build your web pages easily
它是一种替代jQuery UI,有一些类似的小部件(对话框,手风琴,…)和独家的东西,如Layout module,已经在我的答案中链接了.
选项3:
以前的模拟解决方案是Zino UI,另一个完整的UI框架,具有专门用于“拆分布局”的特定组件
选项4:
jQWidgets是另一个图书馆,与以前类似的目的.
相关替代(相似):
还有另一种选择,它允许在浏览器窗口中切片,但是另外还允许拖放单面板创建不同的选项卡和并排子窗口.
这被称为Golden Layout.它与以前的不同,由于许多原因也更强大,但肯定在目前还没有Touch支持…