【发布时间】:2017-01-13 15:23:57
【问题描述】:
这里是 CSS 和 vaadin 的业余爱好者,尝试在 Vaadin 中实现响应式 UI,但在设置 UI 对象的宽度时遇到问题;一切似乎都破坏了响应式 CSS。以下是我所描述的示例:
CssLayout filterTypeLOptimiseBLayout = new CssLayout();
filterTypeLOptimiseBLayout.setResponsive(true);
filterTypeLOptimiseBLayout.addStyleName("flexwrap");
filterTypeLOptimiseBLayout.setSizeFull();
Label filtTypeLabel = new Label("Filter Type Filler");
filtTypeLabel.addStyleName("filtTypeLabel");
filtTypeLabel.setSizeFull();
filtTypeLabel.setResponsive(true);
filterTypeLOptimiseBLayout.addComponent(filtTypeLabel);
以及相应的响应式 CSS 块应用于filtTypeLabel:
/* ---- Filter Type Filler Label ------*/
//Basic inherited CSS
.filtTypeLabel {
padding: 5px;
}
//Mobile
.filtTypeLabel[width-range~="0-300px"] {
font-size: 12pt;
margin: 5px;
}
//Small Browser
.filtTypeLabel[width-range~="301px-600px"] {
font-size: 14pt;
margin: 10px;
}
//Big Browser
.filtTypeLabel[width-range~="601px-"] {
font-size: 16pt;
margin: 20px;
}
使用前面的代码,我按预期实现了按钮字体和边距的缩放,但我还想控制标签的宽度。使用filtTypeLabel.setSizeFull(); 会导致与标签位于同一行的任何内容环绕到下一行,因为标签水平占据所有空间。相反,调用 filtTypeLabel.setWidthUndefined(); 会破坏响应缩放,而 filtTypeLabel.setWidth("5%"); 也会破坏它。在 CSS 中设置 max-width 和 min-width 也会破坏它。
有没有办法将设置的宽度应用于启用响应式 CSS 的对象?
【问题讨论】:
标签: css user-interface layout gwt vaadin