我正面临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;
}
答案 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处理样式的方式上做错了什么。