我有一个漂亮的纯HTML模型的网页,我现在在GWT重新创建。我试图在我的GWT应用程序中使用相同的CSS,但这不工作,对我来说。 GWT样式似乎覆盖了我的。我知道我可以完全禁用GWT样式,但我更喜欢为我添加的GWT组件(选项卡面板,按钮等)的样式。有没有办法禁用GWT样式,并只为我选择的组件启用它?
解决方法
我设法通过继承我的项目的.gwt.xml文件中的项目的.css文件解决覆盖标准css规则的问题。当您设置用户定义的.css这种方式 – 在通常的继承线之后 – 在级联一个规则比在标准gwt样式表定义的相同规则具有更高的优先级。
花了几个小时来弄清楚如何正确地继承它,导致在第一次尝试只是简单地键入< stylesheet src ='WebTerminal.css'/& gt;在我的.gwt.xml文件中,并注释掉< link type =“text / css”rel =“stylesheet”href =“WebTerminal.css”>在我的.html主机页没有给我任何结果。
所以,解决方案是使用相对路径,当你设置.css在.gwt.xml配置,像这样:
花了几个小时来弄清楚如何正确地继承它,导致在第一次尝试只是简单地键入< stylesheet src ='WebTerminal.css'/& gt;在我的.gwt.xml文件中,并注释掉< link type =“text / css”rel =“stylesheet”href =“WebTerminal.css”>在我的.html主机页没有给我任何结果。
所以,解决方案是使用相对路径,当你设置.css在.gwt.xml配置,像这样:
<stylesheet src='../WebTerminal.css' />
通知../在我的相对路径的开始。为了弄清楚它是如何工作的,添加Window.alert(GWT.getModuleBaseURL());作为您的onModuleLoad()方法的第一行。它会显示像https:// localhost:8080 / myproject / resouces / webtermial /,当事实上你的托管页面URL看起来像https:// localhost:8080 / myproject / resouces / WebTerminal.html。这里的myproject / resouces是一个目录,包含你的.css文件,当你设置在.gwt.xml如< stylesheet src ='WebTerminal.css'/> ;,编译器开始寻找myproject / resouces / webtermial /WebTerminal.css,找不到它。这就是为什么添加../有时是唯一要做的来解决你的问题。 除了上面说的话,我只想提到我没有成功地尝试在最新的纪录片或在google集团进行的讨论中找到这件事的任何描述。希望它不那么难以弄清楚,因为GWT有一个非常复杂的问题本身,比一个,它必须有一个穷尽的描述内部教程。