【问题标题】:Using ClientBundle image resources in css urls在 css url 中使用 ClientBundle 图像资源
【发布时间】:2023-04-02 04:24:01
【问题描述】:

我正在 GWT 中构建一个应用程序,并从我的图形设计师那里获得了一个皮肤,我已经使用 UIBinder 将它插入到应用程序中,它运行良好。现在我想使用 ClientBundle 捆绑所有图像。

这些图像中可能有一些用于 css 文件,例如

.nav{background:url(nav_bg.jpg) 左上重复-x;高度:27px;清除:两者;}

在这个 css 之前我已经定义了一个标签来包含这个包。

如何更改 css 条目以使其使用 ClientBundle 中的 ImageResource?我想我可以为所有的 html 标签做内联样式,但这是可怕的分离和很多额外的工作。

我已经在 uibinder 文件的 html 部分(例如在 a 中)成功使用了 ImageResources,但我看不到如何在 css 中执行此操作。我什至在一个块中内联了 css,但我仍然没有看到正确的方法。

有什么建议吗?

【问题讨论】:

    标签: css gwt uibinder


    【解决方案1】:

    ClientBundles 现在也可用于托管 CssResources。 这些 CssResources 是具有一些额外功能的 CSS 文件。

    GWT 的文档在关于 ImageSprites 的部分中描述了您需要的内容。

    【讨论】:

    • 没错,但代价是牺牲了 IE6 支持。我也看不到如何指定css规则的“左上角”部分。似乎只支持 repeat-x 属性。
    【解决方案2】:

    我最终完全跳过了 GWT CSS 和图像捆绑。相反,我使用设计/雕刻团队制作的 css sprited 图像块完成了雕刻。这有这些优点。

    1/ 更少的 css 移植,因为我可以将 html 直接插入 ui binder 并使用 carve 中的 css 标签,即不使用 uibinder css。只要 html 结构与雕刻匹配,那么这比将所有 css 迁移到 gwt css 的工作要少得多。

    2/ 它还允许我在应用更改时使用 svn/diff - 这在使用 gwt css/image spriting 时是不可能的。

    3/ 我可以轻松地将图像/css 文件放在 CDN 上,因为加载标签位于主机页面中并且不受同源限制。仅供参考:是的,我知道 XS 链接器是另一种方法。

    当雕刻使用 css 进行定位并且我想使用 LayoutPanels 时它不再有用,但只要我要求布局 css 与样式 css 分开,这还不错。

    所以最后我发现,当使用来自第三方的设计/雕刻时,避免使用 gwt css/images 会容易得多,但使用传统的 css spriting 和 minification 来重现相同的好处。我希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      相关资源
      最近更新 更多