如何在现代GWT应用程序中覆盖默认CSS?

前端之家收集整理的这篇文章主要介绍了如何在现代GWT应用程序中覆盖默认CSS?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
从以下页面Developer’s Guide – CSS Style

很明显,在现代GWT应用程序中,有两种方式来声明css样式:

使用ClientBundle中包含的CssResource.
在UiBinder模板中使用内联元素.

你如何使用这两种方法中的任何一种来覆盖GWT默认样式,如gwt-Button,gwt-TextBox等?

我知道仍然可以使用从html页面或.gwt.xml文件引用的css样式表.但是,我想避免这种情况,因为现在不推荐使用这些方法.

解决方法

使用@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级联覆盖样式).作为一个额外的好处,您将拥有更轻的样式表,因此为用户下载速度更快,“更快更好”.

作为旁注,UiBinder生成一个隐式ClientBundle,其中每个< ui:style> element生成一个隐式CssResource(并自动调用ensureInjected());所以< ui:style>之间没有太大区别和一个CssResource.

原文链接:https://www.f2er.com/css/214075.html

猜你在找的CSS相关文章