GWT - 未正确从css文件中拾取样式

时间:2011-10-28 14:49:58

标签: gwt

我正面临GWT这种奇怪的情况,其中样式没有正确地从CSS文件中获取。

我正在尝试设置文本区域的样式。我知道它从clean.css或standard.css中获取默认样式。

但我已从application.gwt.xml文件中删除了继承行,并将所有这些样式复制到我自己的自定义样式表文件中 - application.css

我正在尝试将此样式名称(“关闭”见下文)添加到我的textarea中

       TextArea ta = new TextArea();
       ta.addStylename("close");

但它根本没有取得“关闭”的班级名称。我有从standard.css复制到application.css的文本区域的默认样式。 我使用firebug和chrome的inspect元素检查了页面,我可以看到元素为 -

   <textarea class="gwt-TextArea close"></textarea>

我看到样式只能从类中获取 - gwt-TextArea。

有人可以帮助我。

//// styles in application.css
          .close  {
       font-size:150%;
          }

          .gwt-TextArea {
            border: 1px solid #d9dbdb;
             background: #ffffff;
             color: #8e8e8e;
             font: Arial, sans-serif;
              overflow: auto;
           }

3 个答案:

答案 0 :(得分:0)

您正在寻找的是setStyleName(),它将为对象添加样式名称。 完成后,您可以像现在一样使用.close {}。

addStyleName的作用是它创建了另一种样式,在这种情况下依赖于主样式名称.gwt-TextArea close {}(我不是100%肯定这个,文档不是很清楚)。< / p>

无论如何,使用setStyleName()和setStylePrimaryName()都是个好习惯。

顺便说一句。如果您喜欢这个答案,请点击帖子左侧的按钮,这样它就会被标记为已回答:)

答案 1 :(得分:0)

在GWT中,默认情况下会对样式进行模糊处理,因此您可以在不同的小部件中重复使用样式名称。

您必须使用特殊的CSS类映射来以编程方式使用样式:CssResource。

interface MyCssResource extends CssResource {
  String myCssClass();
}

class MyResources extends ClientBundle {
  @Source("my.css")
  MyCssResource css();

  @Source("some.png")
  ImageResource imageAccessor();

  @Source("some.png")
  @ImageOptions(repeatStyle=RepeatStyle.Horizontal)
  ImageResource repeatingImage();
}

然后通过GWT延迟绑定使用此clientbundle。

有关更多信息,请参阅此处: http://code.google.com/intl/fr-FR/webtoolkit/doc/latest/DevGuideClientBundle.html#CssResource

答案 2 :(得分:0)

谢谢你们的帮助。但我发现我的css文件在文件中间某处有一个语法错误,因此下面写的所有样式都没有被选中。 这是一件很难的事情......因为我一直在想我是否在通过GWT处理样式的方式上做错了什么。

相关问题