Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWT:在主机页中加载不同的css_Gwt_Extjs_Gxt - Fatal编程技术网

GWT:在主机页中加载不同的css

GWT:在主机页中加载不同的css,gwt,extjs,gxt,Gwt,Extjs,Gxt,我有基于GWTP的gwt应用程序。该应用程序支持两个版本(平板电脑和桌面),并使用不同的小部件库(sencha gxt和sencha touch)。这些库在主机页中需要不同的css文件。更多其他css相互冲突。如何在主机页中加载不同的css文件 我已经读过了,但是它们使用单个html页面和不同的组件实现。您可以检查Useragent并决定交付哪个CSS文件 我建议使用。这只提供css样式所需,并加快页面速度 在入口点中,您只需决定要交付的css文件: if(useragent == "deskt

我有基于GWTP的gwt应用程序。该应用程序支持两个版本(平板电脑和桌面),并使用不同的小部件库(sencha gxt和sencha touch)。这些库在主机页中需要不同的css文件。更多其他css相互冲突。如何在主机页中加载不同的css文件


我已经读过了,但是它们使用单个html页面和不同的组件实现。

您可以检查Useragent并决定交付哪个CSS文件

我建议使用。这只提供css样式所需,并加快页面速度

在入口点中,您只需决定要交付的css文件:

if(useragent == "desktop") {
   YourStyle.getTheme().getMGWTClientBundle().getDesktopCss().ensureInjected();
} else {
   YourStyle.getTheme().getMGWTClientBundle().getAppCss().ensureInjected();
}
或者你也可以做一个。但无论如何,您必须使用ClientBundles

在那里,您可以有如下内容:

@external gwt-button;
@if user.agent safari {
    .gwt-Button {
        ...
    }
}

@外部gwt按钮用于避免混淆错误。您也可以使用@external*

您也可以在服务器端通过使用JSP文件作为css源来实现这一点。 然后,在JSP文件中,根据请求的用户代理或其他代理决定要发送的属性集

另一个选项是将主机页编写为JSP文件,它可以根据请求包含适当的CSS文件。

这是一种非常简单的方法,但是必须在web.xml中启用JSP处理器。它还要求您部署的系统上有java编译器,如果您只在Web服务器上安装JRE,则情况并非如此。

您必须创建两个类来加载css文件:

您可以在gwt.xml文件中执行一些与类型相关的操作

<replace-with
    class="com.test.classMobile">
    <when-type-is
        class="com.Test.classBrowser" />
    <when-property-is name="tablet.user.agent" value="ipad" />
</replace-with>  


试试看……我不确定这种方法100%会导致css解析和混淆的错误。所以这是不合适的。你必须正确使用CssResource,这只是一个片段。如果您想了解更多关于CssResource的信息,请阅读文档,但这是如何使用它的建议。在您的情况下,您可能不使用外部gwt按钮。或者只是外部的,没有混淆。为了清楚起见,我修改了代码。我们讨论两个库的css。这些样式相当复杂(有浏览器的技巧)。例如,看看GXT3中的reset.css。无法为每个css选择器添加@external。