Как переопределить CSS по умолчанию в современных приложениях GWT? - PullRequest
6 голосов
/ 18 ноября 2011

Со следующей страницы: Руководство разработчика - стиль CSS

ясно, что в современных приложениях GWT есть два способа объявить стили css:

Использование CssResource, содержащегося в ClientBundle.Использование встроенного элемента в шаблоне UiBinder.

Как использовать один из этих двух методов для переопределения стилей GWT по умолчанию, таких как gwt-Button, gwt-TextBox и т. Д.?

Iзнаю, что все еще можно использовать таблицу стилей CSS, на которую вы ссылаетесь либо из html-страницы, либо из файла .gwt.xml.Однако я бы хотел избежать этого, поскольку эти методы в настоящее время устарели.

1 Ответ

10 голосов
/ 18 ноября 2011

Используйте @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.

...