0

我在 CSS 中为面板设置了边距。现在我需要在 GWT 中获取边距宽度。我怎么能这样做?比如我给面板设置了一个css样式

   <ui:binder>
  .panel{
   margin: 5px;
   }


  <g:HTMLPanel Ui:field=myPanel styleName="{style.panel}" />   
  </ui:binder>

在 GWT 2.4 中,如何在 GWT 类中检索边距值(5px)。我已经厌倦了这些,DOM.getIntStyleAttribute(myPanel.getElement(), "margin"), DOM.getIntStyleAttribute(myPanel.getElement(), "marginWidth") 和 myPanel.getElement().getStyle().getMargin()。所有这些都返回 0。

那我怎样才能得到边距宽度呢?

感谢回复。

问候

4

1 回答 1

3

您正在寻找计算的样式,但正在请求元素样式。

如果您要直接在元素上设置样式属性,那么您可以像尝试一样查询元素的边距。

<!-- style can only be set on html elements, not widgets -->
<div ui:field="divElement" style='margin:5px'></div> 

divElement.getStyle().getMargin();

据我所知,GWT 没有提供查找计算样式的方法。相反,您将需要依赖外部库。快速谷歌搜索gwt computed style将为您提供一些选项。


或者,您可以将边距宽度定义为 GWT CSS 常量并使用 CssResource 来访问它。

MyPanel.ui.xml

<ui:style field="style" type="com.myproject.client.MyPanel.MyStyle">
  @def marginWidth 5px;
  .panel{ margin: marginWidth; }
</ui:style>

我的面板.java

@UiField MyStyle style;

interface MyStyle extends CssResource {
  String marginWidth();
}
于 2012-05-10T17:41:40.580 回答