Wicket - 应用setOutputMarkupPlaceholderTag时div标签的位置发生变化

时间:2011-12-20 14:05:00

标签: html position wicket-1.5

我的html页面中有一个div标记,用作面板的占位符。

在我的java代码中,每当我在面板上应用setOutputMarkupPlaceholderTag(true)时,我的div标签在html中的位置会自动变为左上角,而我div的原始位置是在我设置的右下角我的CSS样式表。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

为什么要通过调用Component.setOutputMarkupPlaceholderTag(true)将标志设置为true? 毕竟,似乎设置标志会修改封闭块标签的样式信息。

您能提供实际生成的HTML代码吗?在浏览器中按下以查看html源代码。 也许它看起来像

<div id="something" class="xy">
    ...
</div>

如我所见,在检查生成的div标签后,你有三个选项
a)不要设置标志Component.setOutputMarkupPlaceholderTag(true)。您可以通过覆盖

来控制面板实现的可见性
@Override
protected void onConfigure() {
    super.onConfigure();

    boolean visible = ...; // evaluate the state
    setVisible(visible);
}

检查http://wicket.apache.org/apidocs/1.5/以获取Component类的更多详细信息。 (小组是一个组成部分。)
b)通过以下方式修改Wicket生成的样式信息:

panel.add(new AttributeModifier("class", "styledPanel");

或更保守:

panel.add(new AttributeAppender("class", "styledPanel");

您可能需要更新“样式”信息。

c)通过反映Wicket为此div标签生成的样式信息来更新CSS样式表。

实际上,b)和c)的组合将引导您实现目标。您必须在浏览器中检查面板生成的html代码。 就我而言,我更倾向于解决方案a)。