2011-05-15 53 views
0

我是GWT难民,试图弄清楚如何在Wicket中执行各种Ajax-ish事情。wicket:如何使div高度依赖于另一个div

我有两个div。我想使第一个div的max-height取决于第二个div的高度,并且使用“more/less”链接,以便用户可以扩展第一个div。

实施例:

enter image description here 两者的div的含量是可变的,并且因为已经DIV2包裹在一个比例字体的文字,我真的不能预测其高度直到在浏览器中呈现。

在GWT中,我通过每次向div1添加一行内容来完成此操作,并且如果它超过div2的高度(已经有内容呈现),我只需删除该行。由于GWT在客户端上运行,这非常简单。

在Wicket中做这件事的最好方法是什么?我期望需要一个小小的Javascript,但是如果有一个组件已经做到了(或者更容易),我会很乐意使用它。

回答

1

似乎是一个相当简单的JavaScript的解决方案(但它不能解决表现-半个线的问题,但我认为,可以通过这个玩弄周围来解决:

document.getElementById("div1").style.height = document.getElementById("div2").offsetHeight; 
2

在纯Wicket的帮助下,我认为没有办法做到这一点。但也许Wicket + JQuery方法将帮助你实现你的想法...

0

难道这几乎完全由CSS解决?就像将这两个DIV添加到带有overflow:hidden属性的第三个DIV中,剪切第二个DIV内容并通过JavaScript扩展包装DIV的高度? 也许你将不得不将DIV1更改为内联处理,以便它不会“推”容器的下边框或类似的东西...... 就像一个指针,没有尝试它,不能尝试它现在不知道它是否有效,但我认为,它应该。无论如何,你或我,有人不得不玩这个找出...

希望这有助于一点点。

+0

我很喜欢纯粹的CSS解决方案,但我不认为存在。溢出问题:隐藏的是,它很可能会切断一行中间的第一个div。另外,我认为你需要在包含div上设置一个明确的高度,这实际上会切断两个子div。至于添加JS来扩展包装div的高度,那么我想它可以直接扩大第一个div的高度。 – 2011-05-16 15:44:36

+0

你是对的,至少在晚餐前我没有想到;)但是我想,我发现了一些更好的东西......(与firefox一起工作)...看到我的下一个答案... – Nicktar 2011-05-16 17:54:23

0

你可以使两者完全打开(以提高可访问到非JS用户),然后限制1区的高度,以事业部2的高度

所以(用jQuery)...

CSS

#div1 { overflow: hidden; } 

的Javascript

$(document).ready(function() { 
    var div2_height = $('#div2').height(); 

    $('#div1').height(div2_height); 
}); 

为了说明斩波上一条线,测试线的高度和设置高度的倍数。

相关问题