从以下页面:Developer's Guide - CSS Style
很明显,在现代GWT
个应用中,有两种方式可以声明css
个样式:
使用ClientBundle中包含的CssResource。 在UiBinder模板中使用内联元素。
如何使用这两种方法中的任何一种来覆盖GWT
默认样式,例如gwt-Button
,gwt-TextBox
等?
我知道仍然可以使用从html页面或.gwt.xml文件引用的css样式表。但是,我想避免这种情况,因为现在不推荐使用这些方法。
答案 0 :(得分:10)
使用@external
@ -rule禁用给定CSS类名称的模糊处理:http://code.google.com/webtoolkit/doc/latest/DevGuideClientBundle.html#External_and_legacy_scopes
例如,您可以在任何CssResource
样式表中添加以下内容:
@external .gwt-*;
但是,IMO,最佳做法在小部件上改为addStyleName
或setStyleName
(或分别在UiBinder addStyleNames="…"
或styleName="…"
)。如果你想自定义一个主题,首先将它复制为你自己的主题并调整你自己的副本(而不是使用CSS cascade 覆盖样式)。作为额外的好处,您将拥有更轻的样式表,因此为用户下载速度更快,“速度更快”。
作为旁注,UiBinder会生成一个隐式ClientBundle
,其中每个<ui:style>
元素生成一个隐式CssResource
(并自动调用ensureInjected()
);所以<ui:style>
和CssResource
之间没有太大区别。