EM中的字体大小不符合VerticalPanel的预期

时间:2013-08-10 11:25:00

标签: gwt font-size em

我希望在开始时在'PX'中修复一个字体大小(比如onModuleLoad),并在'EM'中包含其他小部件和主题。这是为了帮助我动态地改变不同屏幕分辨率的外观。这是我尝试的示例代码。

    root = RootPanel.get();
    root.getElement().getStyle().setFontSize(40, Unit.PX);
    root.setSize("100%", "100%");

    Label l = new Label("Hello World");
    l.getElement().getStyle().setFontSize(1, Unit.EM);
    root.add(l);

    VerticalPanel vp = new VerticalPanel();
    root.add(vp);

    l = new Label("Hello World");
    l.getElement().getStyle().setFontSize(1, Unit.EM);
    vp.add(l);

理想情况下,我想要两个相同字体大小的标签。但第二个远小于第一个。但是对于以下代码,它按预期工作。

    root = RootPanel.get();
    root.getElement().getStyle().setFontSize(40, Unit.PX);
    root.setSize("100%", "100%");

    Label l = new Label("Hello World");
    l.getElement().getStyle().setFontSize(1, Unit.EM);
    root.add(l);

    SimplePanel vp = new SimplePanel();
    root.add(vp);

    l = new Label("Hello World");
    l.getElement().getStyle().setFontSize(1, Unit.EM);
    vp.add(l);

如果是这种情况,如果我希望实现一般化的em,我似乎应该远离垂直/水平面板。我也尝试过FlexTable,但同样的问题又来了。

1 个答案:

答案 0 :(得分:0)

您是否在gwt.xml中使用默认的GWT样式之一?您可以在更复杂的面板中覆盖您的字体大小数据。

无论如何,我自己也采用了类似的方法;我做的是,我基本上只是在我的CSS开头设置整个HTML body的样式,在PX中设置字体大小,然后在其他地方使用EM,这在大多数情况下都很好用。