Css 如何覆盖DataGrid标头的GWT模糊样式
我试图找出如何覆盖中定义的dataGridHeader样式!GWT核心。GWT样式名称被adler32混淆,因此我不能在css中简单地使用.dataGridHeader。在我的情况下,我希望一个简单的空白变化:正常 我在这里看到过关于注入css的文章,但它们似乎都是类级别的,而不是DataGrid之类的组件中使用的子样式Css 如何覆盖DataGrid标头的GWT模糊样式,css,gwt,datagrid,overriding,Css,Gwt,Datagrid,Overriding,我试图找出如何覆盖中定义的dataGridHeader样式!GWT核心。GWT样式名称被adler32混淆,因此我不能在css中简单地使用.dataGridHeader。在我的情况下,我希望一个简单的空白变化:正常 我在这里看到过关于注入css的文章,但它们似乎都是类级别的,而不是DataGrid之类的组件中使用的子样式 如何覆盖DataGrid等组件中使用的标题样式?与任何ClientBundle和CssResource一样:创建一个扩展DataGrid.Resources的接口,并使用指向您
如何覆盖DataGrid等组件中使用的标题样式?与任何
ClientBundle
和CssResource
一样:创建一个扩展DataGrid.Resources
的接口,并使用指向您自己的CSS文件的@Source
注释覆盖dataGridStyle
方法(或者可能同时添加到原始文件和您自己的文件,以便将它们组合在一起)
这样做将覆盖应用程序中所有DataGrid
s的样式(实际上取决于CssResource
实例获得ensureInjected()
首先:来自原始DataGrid.Resources
或来自子接口的样式):因为您使用相同的返回类型(DataGrid.Style
),模糊化的类名将是相同的
如果您想逐个更改样式,那么,另外,声明一个扩展了DataGrid.style
的接口,并将其用作dataGridStyle
覆盖的返回类型:由于模糊化的类名基于接口完全限定名和方法名,因此DataGrid.style
子接口将生成与原始DataGrid.Style
接口不同的模糊化类名
当然,然后,GWT.create()
您的DataGrid.Resources
子接口,并将其作为参数传递给DataGrid
构造函数
另请参见谢谢托马斯
只是为了让读者更容易
创建一个新接口
public interface GwtCssDataGridResources extends DataGrid.Resources {
@Source({Style.DEFAULT_CSS, "gwtDataGrid.css"})
Style dataGrid();
}
使用静态引用
public static final GwtCssDataGridResources gwtCssDataGridResources = GWT.create(GwtCssDataGridResources.class);
static {
gwtCssDataGridResources.dataGrid().ensureInjected();
}
最后创建一个新的CSS文件gwtDataGrid.CSS。请注意,如果需要覆盖样式,则必须在每个定义上使用!important
.dataGridHeader {
color: #FF0000 !important;
}
.dataGridFirstColumnHeader {
-moz-border-radius-topleft: 5px;
-webkit-border-top-left-radius: 5px;
}
.dataGridLastColumnHeader {
-moz-border-radius-topright: 5px;
-webkit-border-top-right-radius: 5px;
}
就是这样我能让你的第一个建议起作用,但我不能用Ensureject排序。任何一种排序都会导致使用原始css。查看DataGrid.java,它看起来总是使用自己的GWT.create结果。将其传递给构造函数起作用。`public interface MyResources extensed DataGrid.resourcces{@Source({DataGrid.Style.DEFAULT_CSS,“DataGrid.CSS”})DataGrid.Style dataGridStyle();}static MyResources resources=GWT.create(MyResources.class);`关于在个案基础上使用不同样式的部分救了我一命。谢谢:)