首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否在父FlowPanel中将FlexTable水平居中?

是否在父FlowPanel中将FlexTable水平居中?
EN

Stack Overflow用户
提问于 2013-01-20 06:48:33
回答 2查看 2.9K关注 0票数 1

我已经创建了一个FlexTable,我想让它在父FlowPanel中水平居中,如下所示:

代码语言:javascript
复制
FlexTable ft = new FlexTable();
ft.add(0, 0, new Label());
ft.add(0, 1, new Orange());
ft.add(0, 2, new Label());

FlowPanel parent = new FlowPanel();
parent.add(ft); // how can I horizontally center the table in this div?

表的内容比父FlowPanel (它是width:auto,浏览器的整个宽度)更窄,但是现在表是左对齐的。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-20 13:49:09

首先呢?您使用的是哪个版本的GWT?我问这个问题的原因是,在FlexTable中没有类似于您在latest version中使用的add (int,int,Widget )的方法。

但是,您可以使用以下代码。

代码语言:javascript
复制
    FlexTable ft = new FlexTable();
    ft.setWidget(0, 0, new Label("a"));
    ft.setWidget(0, 1, new Label("b"));
    ft.setWidget(0, 2, new Label("c"));

    FlowPanel parent = new FlowPanel();
    parent.setSize("100%", "100%");
    parent.add(ft);
    parent.getElement().getStyle().setProperty("TextAlign", "center");
    // If you are using Firefox : 
    //parent.getElement().getStyle().setProperty("TextAlign", "-moz-center");
    RootLayoutPanel.get().add(parent);

如果您不想在java代码中提到样式,您可以随时使用CSS,如下所示

代码语言:javascript
复制
parent.addStyleName("myStyle");

在CSS中

代码语言:javascript
复制
.myStyle{
text-align : center;
}
票数 1
EN

Stack Overflow用户

发布于 2013-01-20 12:42:37

有两个选项:

代码语言:javascript
复制
parent.getElement().getStyle().setTextAlign(TextAlign.CENTER);

代码语言:javascript
复制
ft.getElement().getStyle().setProperty("margin", "0 auto");

当然,您也可以使用CSS样式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14419723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档