2011-05-15 54 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); 
}); 

爲了說明斬波上一條線,測試線的高度和設置高度的倍數。

相關問題