Возможно, но довольно сложно что-то сделать с линкером в GWT. Идея высокого уровня будет:
- Поместите все ваши компоненты GWT в
...
- Добавьте компоновщик в файл модуля GWT, который будет обрабатывать файлы CSS.
- В компоновщике преобразуйте CSS GWT (например, standard.css), чтобы вставить #gwt перед каждым правилом селектора.
Первая часть проста, просто добавьте id к корневому элементу.
Вторая часть также проста, просто добавьте код, который выглядит следующим образом, в ваш файл Module.gwt.xml:
<define-linker name="cssLinker" class="com.you.bootstrap.linker.CssRenamingLinker" />
<add-linker name="cssLinker"/>
Сложная часть - реализация компоновщика. Можно выполнить синтаксический анализ вручную, но вам может быть проще использовать что-то вроде SAC .
Используя компоновщик, вы можете преобразовать свой CSS, вставив #gwt перед каждым селектором. Используя SAC, вы можете сделать это, переопределив все методы DocumentHandler, чтобы просто передать каждый из их аргументов в OutputStream. В DocumentHandler.startSelector () вы должны сначала выдавать «#gwt» перед каждым селектором.
[Изменить]
Это предполагает, что standard.css GWT определяет стили, которые переопределяют стили начальной загрузки. Если нет, вам, возможно, придется «улучшить» GWT CSS по умолчанию. Вот список рекомендуемых по умолчанию W3C здесь .
Преимущество заключается в том, что это устойчиво к будущему - если стили GWT изменятся или если изменятся стили начальной загрузки, это должно быть надежно.
Надеюсь, это поможет,
Адам