我已到處尋找這個特定問題的答案,但沒有發現任何用處。我試圖在Vaadin中創建一個非常簡單的佈局,這在許多網站(包括這一個)上都很常見。我已經包含了這個問題的圖表。基本上需要一個頁腳始終保持放在主要部分之後,如果主要部分很大,滾動條將出現並允許我滾動到底部。如果內容很小,頁腳通常會在主要部分之後出現。如果瀏覽器窗口很小,頁腳將不會與主要部分重疊(這是我卡住的地方)。我試過這麼多方法,但似乎沒有任何工作100%...我想避免與CSS文件搞亂(如果可以的話),只使用Java ... 謝謝!基本標題 - 中心 - 頁腳佈局Vaadin
回答
我已經返工我的代碼,並使用具有動態內容和頁腳標籤頁的念頭放棄了。相反,我正在使用一個簡單的菜單,並且我已經將組件層次顯着展平,現在一切似乎都按預期工作。
我喜歡爲此使用絕對位置。這裏是JSFIDDLE:http://jsfiddle.net/upau942y/您可以使用margin-top在頁腳和網站內容之間創建空隙。
<footer>
<div class="footer-content">
<div class="footer-left">
<p>some content</p>
<p>Thank you for viewing the site!</p>
</div>
</div>
</footer>
Footer {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
background: #000;
margin-top: 2rem;
}
嘗試BorderLayout插件。 它應該做你需要什麼, 只要確保把正確的組件中的主要部分,使顯示滾動條需要
問題是我不希望內容部分無限期擴展。 – Matt 2014-10-03 03:02:05
例如,當,(注意代碼的註釋,我不知道如果你想要一個絕對的或固定的佈局)
public class BoxApp extends UI {
HorizontalLayout head = new HorizontalLayout();
Panel main = new Panel();
HorizontalLayout footer = new HorizontalLayout();
@Override
protected void init(VaadinRequest request) {
main.setStyleName(Reindeer.PANEL_LIGHT);
head.addComponent(new Label("head"));
main.setContent(new Label("<pre>MAIN START\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\\n" +
"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" +
"\n\n\n\n\n\n\n\n\nMAIN END</pre>", ContentMode.HTML));
footer.addComponent(new Label("footer"));
VerticalLayout form = new VerticalLayout();
form.setMargin(false);
form.setSpacing(false);
head.setHeight(50, Unit.PIXELS);
form.addComponent(head);
form.setExpandRatio(head, 0);
main.setHeight(100, Unit.PERCENTAGE);
form.addComponent(main);
form.setExpandRatio(main, 10);
footer.setHeight(50, Unit.PIXELS);
form.addComponent(footer);
form.setExpandRatio(footer, 0);
// Drop following line if you don't want a fixed layout
form.setSizeFull();
this.setContent(form);
}
}
使用JDALBoxFormBuilder
(我寫的)的語法建設的根組件是一個更清晰一點
BoxFormBuilder fb = new BoxFormBuilder();
fb.setDefaultWidth(BoxFormBuilder.SIZE_FULL);
fb.row(50); // new row for head
fb.add(head);
fb.row(BoxFormBuilder.SIZE_FULL); // new row for main, full height
fb.add(main);
fb.row(50); // new row for footer
fb.add(footer);
Component form = fb.getForm(); // Build the component.
非常感謝你,我的主要問題是在我的情況下主要是HorizontalLayout。使用main作爲面板並在該面板內添加HorizontalLayout效果很好。謝謝:) – Matt 2014-10-03 02:56:49
經過多次測試後,這不是我所期待的(它非常接近)。我正在尋找這樣的東西,http://www.templateaccess.com/demos/kaleidoscope-html/簡單的表格網站。現在,如果主要部分太大,我會爲該部分獲得一個滾動條(並且頁腳始終處於完整大小)。 – Matt 2014-10-03 03:03:25
我有一個在主要部分中具有可變大小的組件的標籤頁,最終發生的是標籤頁被繪製並且頁腳組件最終與標籤頁重疊。 – Matt 2014-10-03 07:11:02
這應做到:
mainVLayout.setSizeFull();
mainVLayout.addComponent(headerComponent);
mainVLayout.addComponent(contentPanel);
mainVLayout.addComponent(footerComponent);
mainVLayout.setExpandRatio(contentPanel, 1);//this is the key.
有趣的是,您不是使用佈局,而是使用所有三個部分的組件。我會給這個鏡頭... – Matt 2014-10-03 03:09:29
所以這個解決方案几乎就在那裏,問題在於,在這種情況下,contentPanel可以顯着擴展,所以如果你有一個大屏幕和小內容,你會得到大量的空白。但我想這是正常的所有網站,我只需要添加很多內容... – Matt 2014-10-03 03:52:41
這似乎是我卡住了...對我來說,最大的問題是,contentPanel需要持有一個標籤頁與組件大小可變。結果發生的是標籤頁最終被填充並且頁腳與標籤頁重疊,而不是被添加到下面。 – Matt 2014-10-03 07:08:45
- 1. Vaadin基本佈局:固定頁眉和頁腳+滾動內容
- 2. 佈局與標籤的基地,頁腳
- 3. CSS頁腳佈局問題
- 4. 中心Jquery Easy Ui佈局標題
- 5. 基本佈局問題
- 6. Vaadin佈局間距
- 7. Vaadin水平佈局
- 8. 打印Vaadin佈局
- 9. 中心和佈局頁面沒有包裝並且有頁腳
- 10. Vaadin LoginForm佈局 - HTML
- 11. Qt佈局中心本身
- 12. 頁眉和頁腳佈局
- 13. W3.CSS如何獲得標準標題 - [左右]頁腳佈局?
- 14. 基本頁腳問題
- 15. 本地腳本中絕對佈局中心的位置元素
- 16. 佈局 - 中心等佈局
- 17. 佈局。尾頁腳
- 18. wpf datagrid頁腳佈局
- 19. 遇到粘腳頁面佈局問題
- 20. Vaadin處理佈局事件
- 21. Vaadin - 多個TabSheet佈局
- 22. Vaadin在佈局中的組件位置
- 23. 單頁網站基本佈局
- 24. 基本HTML佈局
- 25. 基本的html佈局問題
- 26. 基本的Android佈局問題
- 27. Drop floats--基本的CSS佈局問題
- 28. Magento佈局相關的基本問題?
- 29. 基本的WPF佈局問題
- 30. Vaadin 7垂直佈局
JSFIDDLE是非常酷:)所以我不得不亂搞HTML和CSS ...沒有Vaadin具體的方式? – Matt 2014-09-06 03:11:22
我不知道Vaadin,我上面寫的代碼將在任何框架上工作,並且很容易實現。希望能幫助到你。 – Bojan 2014-09-06 22:16:20
在vaadin你編碼在java中的一切 – d2k2 2014-09-08 07:53:53