我的html页面中有一个div标记,用作面板的占位符。
在我的java代码中,每当我在面板上应用setOutputMarkupPlaceholderTag(true)时,我的div标签在html中的位置会自动变为左上角,而我div的原始位置是在我设置的右下角我的CSS样式表。
我该怎么办?
答案 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)。