【问题标题】:gwt 2.7.0 background-image for body用于身体的 gwt 2.7.0 背景图像
【发布时间】:2023-06-24 01:36:01
【问题描述】:

我希望我的登录页面在正文中有一个背景图片。到目前为止,这是我所拥有的:

public interface MyResources extends ClientBundle {
    public static final MyResources INSTANCE = GWT.create(MyResources.class);

    @Source("css/login.css")
    public MyLoginCssResource loginCss();

    @Source("css/GWT_App.css")
    public CommonCss commonCss();

    @Source("img/logo.png")
    @ImageOptions(repeatStyle = RepeatStyle.Both)
    ImageResource backgroundImage();
}

public interface CommonCss extends CssResource {

    String body();
}

.body {
    background-color: white;
    gwt-image: 'backgroundImage';
}

如果我已经引用了 loginCss,如何在我的 ui.xml 文件中引用 commonCSS?

<ui:with field='res' type='client.resources.MyResources' />

<g:HTMLPanel addStyleNames="{res.loginCss.maindiv}">
</g:HTMLPanel>
</ui:UIBinder>

另外,如何在 ui.xml 文件中为 body 标签设置样式?

【问题讨论】:

    标签: css gwt uibinder resourcebundle


    【解决方案1】:

    如果我已经引用了 loginCss,如何在我的 ui.xml 文件中引用 commonCSS?

    <g:HTMLPanel addStyleNames="{res.loginCss.maindiv} {res.commonCss.body}"/>
    

    另外,如何在 ui.xml 文件中为 body 标签设置样式?

    据我所知,您无法从 ui.xml 文件访问正文。 有几种方法可以仅在登录页面中使用此背景。 最简单的一种是将所有页面包装在一个容器块中

        <g:FlowPanel addStyleNames="{res.commonCss.body}">
           <g:HTMLPanel addStyleNames="{res.loginCss.maindiv} "/>
       </g:FlowPanel>
    

    所以在登录页面的导航中 - 背景不会停留在那里。

    如果您想要永久效果 - 您可以在 index.html 文件中添加 css,作为 body 标签的常规 css

    【讨论】:

    • 我只是无法让背景图像工作。我通过将样式直接添加到主机 html 文件中的 body 元素获得了主体白色但是即使将正确的样式类添加到 html 元素中,背景图像也不会显示。要将背景图像添加到 HTMLPanel,我还需要做些什么吗?
    • 它应该开箱即用。另外,您可以只写 background: url ('file.png') 请检查开发工具(chrome 中的 F12) 1. 您的样式应用了吗? 2 您的面板尺寸是否符合预期(可能为 0 高度) 3. 是否已加载背景文件(可能路径错误,您得到 404)
    • 现在可以使用了。我将所有内容都放入一个 css 文件中,现在它可以工作了。由于某种原因,未正确加载 GWT_App.css。它确实向小部件添加了正确的类名,但从未应用样式。
    最近更新 更多