2012-04-24 39 views
11

是否有人能够将LESS的精简短语句法与GWT UiBinder的精美模块,重新因子友好和类型安全的CSS集成在一起?在GWT中缺少css或SCSS

<ui:style with="com.lesscss.gwt"> 
    .selector{ 
     /* Can I haz LESS in here? */ 
    } 
</ui:style> 

当然,你可以使用与GWT LESS - 你只需要使用非编CSS。我希望我的CSS通过LESS编译器,然后是GWT编译器。

回答

2

如前所述,没有图书馆直接这样做。但现在有;)!

我最近编写并发布了一个库(GWT的HexaCss),它允许将GWT应用程序绑定到外部CSS文件,同时保持类型安全性和优化,如修剪和css名称混淆。

您可以像使用传统的CssResource(如此类型化)一样使用它,但不是绑定到CSS文件在您的GWT项目中,它绑定到任何您想要的外部CSS文件(甚至可以将多个CSS文件绑定到相同的文件应用程序,为您的GWT应用程序提供主题)。

所以在你的情况下,外部CSS文件已经与HexaCss一起生成。这就是我在很多项目上所做的。

你甚至可以使用Sass,GSS等。您也可以使用已经编写的Bootstrap和Skeleton绑定。

类似于您的问题的示例是这样一个示例,其中CSS使用Less生成,并在使用HexaCss的GWT中使用,然后可以直接使用UiBinder或Java。

链接到示例:http://lteconsulting.fr/hexacss/demo/sample3/index.html - 这是一个非常丑陋的演示,只显示了这个想法。您可以使用顶部的列表框在主题之间切换。

希望这会有所帮助!

5

这里没有直接的库,没有。

LESS甚至没有java编译器,所以我真的不认为它会发生。

假设您可以编写一个预编译例程,它会遍历您的ui.xml文件,编译ui:style节点的内容并将编译后的版本放回。然后,你会遇到不断抱怨你的IDE抱怨CSS代码不正确的问题。

+0

感谢您的好评。这是有道理的,如果没有人出面,我会很快接受。 – logan 2012-05-01 01:15:56

+2

我只在公用文件夹中有一个LESS文件以及LESS lib,我将它添加到特殊入口点的onModuleLoad()中。这样我的模块可以被继承,当你玩它们时,你仍然可以看着风格的变化。唉,没有风格名称混淆。 – McTrafik 2012-05-04 19:01:31

+0

好的建议。我也想到了这一点,但在多开发环境中,对模块化和静态代码分析的需求至关重要。 GWT的css资源确保两个开发人员不使用相同的名称空间。我期望获得所有这些好处,而不仅仅是混淆。 – logan 2012-05-04 21:53:42