Gwt 如何垂直对齐&;水平对齐FlowPanel内的组件?
如中所述,谷歌表示,我们不应该使用HorizontalPanel和VerticalPanel进行布局,因为它可能存在一些浏览器不兼容的问题。谷歌建议改用FlowPanel VerticalPanel通常可以被简单的FlowPanel替换(因为块级元素自然会垂直堆叠) 水平面板有点棘手。在某些情况下,您可以简单地将其替换为DockLayoutPanel,但这需要明确指定其子级的宽度。最常见的替代方法是使用FlowPanel,并使用float:left;它的子对象上的CSS属性。当然,您可以继续使用HorizontalPanel本身,只要您考虑到上述注意事项。 然而,我们现在遇到了另一个问题 如何在FlowPanel内垂直对齐和水平对齐组件 这不管用Gwt 如何垂直对齐&;水平对齐FlowPanel内的组件?,gwt,uibinder,gwtp,Gwt,Uibinder,Gwtp,如中所述,谷歌表示,我们不应该使用HorizontalPanel和VerticalPanel进行布局,因为它可能存在一些浏览器不兼容的问题。谷歌建议改用FlowPanel VerticalPanel通常可以被简单的FlowPanel替换(因为块级元素自然会垂直堆叠) 水平面板有点棘手。在某些情况下,您可以简单地将其替换为DockLayoutPanel,但这需要明确指定其子级的宽度。最常见的替代方法是使用FlowPanel,并使用float:left;它的子对象上的CSS属性。当然,您可以继续使用
<g:FlowPanel height="100%" addStyleNames="{res.css.alignMiddle}">
.alignMiddle{
vertical-align:middle;
}
.中{
垂直对齐:中间对齐;
}
我尝试了myFlowPanel.getElement().getStyle().setVerticalAlign(VerticalAlign.MIDDLE)代码>但它也不起作用
<g:FlowPanel height="100%" addStyleNames="{res.css.alignMiddle}">
.alignMiddle{
vertical-align:middle;
}
另外,另一种方法是在HTMLPanel中使用
html标记,但有些人说不同的浏览器可能会以不同的方式呈现gui,
中的小部件会引起一些怪癖。谷歌不建议在HTMLPanel中使用
,所以我们不应该使用
但是,那么:
如何在FlowPanel中垂直对齐和水平对齐组件?我找到了一个解决方案
<g:FlowPanel addStyleNames="{res.css.outer}">
<g:FlowPanel addStyleNames="{res.css.alignMiddle}">
more widget here....
</g:FlowPanel>
</g:FlowPanel>
.outer {
display: table;
height: 100%;
width: 100%;
}
.alignMiddle{
display: table-cell;
vertical-align: middle;
text-align:center;
}
这里有更多小部件。。。。
.外部{
显示:表格;
身高:100%;
宽度:100%;
}
.中{
显示:表格单元格;
垂直对齐:中间对齐;
文本对齐:居中;
}