2011-05-30 44 views
19

据我所知,<frameset><frame>标记正在被弃用。有没有办法模仿可调整大小的框架?我想要的是一个狭窄的分离器,将水平或垂直的区域分开,用户可以移动这个区域,以便当其中一边变小时,另一边变大,反之亦然。我不想用传统框架的HTML页面填充每个框架,而是使用一些DOM材料。可调整大小的帧模拟

我知道CSS3具有resize属性,但它仅控制自身的大小。我不确定这是否会用于解决方案。

我不特别喜欢使用JavaScript,但我不排除如果有必要使用它的可能性。

+0

[这是我能想到的最好的](http://jsfiddle.net/ysangkok/2YBWb/1/)。JavaScript和没有垂直栏(依靠CSS3的大小调整)。应该很容易移植到香草JS。 – 2012-09-23 02:41:01

+1

不,帧不会被弃用**如果您使用正确的HTML4.01文档类型(HTML4.01/XHTML1.0与HTML5 btw中的'acronym'元素相同)。现在,我明显不会将它用于客户端项目,但可能仍然用于技术文档(或者不是,因为在这种情况下,我不会在乎IE6/7,而IE8有* OK *支持诸如'position:固定'的侧边栏) – FelipeAls 2012-09-23 08:47:59

+1

你是否在寻找这样的东西http://jsbin.com/ – Champ 2012-09-28 16:45:42

回答

15

请勿使用框架。我不认为jQuery调整大小也会帮助你。

做到这一点的最好方法是使用“分离器”。有几个jquery的插件可以用很多不同的方式来实现,而且它们都很简单。

我以前用这一个:http://methvin.com/splitter/

你可以找到一个很好的演示在这里:以上http://methvin.com/splitter/3psplitter.html

+0

这太好了。我终于得到了我想要的东西。谢谢。 – sawa 2012-09-30 05:07:03

+0

显然这个插件不再保留(2017年)所有的样本不能在Chrome版本60.0.3112.113上工作,至少他们不显示帧类型视图或调整大小的能力。 – raphie 2017-08-31 20:02:59

0

我会看看JavaScript和拖放支持。

实际上,一个模拟的框架集可能只是两个div和它们之间的一个句柄,可以抓取它们来调整大小。 JQuery有示例来演示如何调整元素的大小:http://jqueryui.com/demos/resizable/我认为将这个概念扩展为合适并不是很困难。

然后我会通过AJAX加载文件,这可能可能完全取代帧。

4

从我的角度jQuery Resizable或JS等东西的一点是你的解决方案。去它的demos
在使用jQuery的情况下,你将有额外的可能性:

  • 最大/最小尺寸
  • 约束调整区域
  • 延时启动
  • 对齐网格

这里是一个jQuery可调整大小的默认功能示例代码:

<style> 
    #resizable { 
     width: 150px; 
     height: 150px; 
     display: block; 
     border: 1px solid gray; 
     text-align: center; 
    } 
</style> 

<script> 
    $(function() { 
     $("#resizable").resizable(); 
    }); 
</script> 

<div id="resizable"> 
    <h3>Resizable</h3> 
</div> 
1

剑锋Troelsen的解决方案是巨大的,如果你不介意的表。 我也发现SoonDead没有表格,这个解决方案在Chrome和FF上效果很好,但不得不花费大量的时间用于IE8。它在StackOverflow上为“Emulate Frameset Separator Behavior

相关问题