我有以下代码:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
xml:lang="en" lang="en">
<body>
<wicket:panel>
<div wicket:id="serviceListContainer">
<table>
<tr wicket:id="serviceListView">
<td>
<span wicket:id="service.name"></span>
</td>
<td>
<span wicket:id="service.state"></span> <!-- I WANT TO COLOR THIS PART IN RED! -->
</td>
</tr>
</table>
</div>
</wicket:panel>
</body>
</html>
如何更改将替换“service.state”的输出文本的颜色?我试过<font color="red">
,但没有任何区别。
谢谢!
答案 0 :(得分:8)
其他答案表明了如何在HTML模板中添加style="..."
属性 。另一方面,如果您不希望静态地执行此操作(例如,您需要计算颜色然后将其添加到组件中),则应该add AttributeModifier
到组件 1
示例(未经测试):
Label l = new Label("service.state", ...);
IModel<String> colorModel = new AbstractReadOnlyModel<String>() {
public String getObject() {
return "color: red;"; // Dummy example
}
}; // Some model, holding a string representation of a CSS style attribute (e.g., "color: ...;") based on some date and/or calculation
l.add(new AttributeModifier("style", true, colorModel);
如果您不需要基于拉取的模型,甚至可以使用SimpleAttributeModifier
:
Label l = new Label("service.state", ...);
String styleAttr = "color: red;";
l.add(new SimpleAttributeModifier("style", styleAttr));
1)前提是setRenderBodyOnly(true)
已调用 。这将从输出中删除包装<span>
元素。
答案 1 :(得分:3)
来自W3Schools:
&lt; font&gt;标记在HTML 4中已弃用,并已从HTML5中删除 万维网联盟(W3C)已删除标签 它的建议。在HTML 4中,应使用样式表(CSS) 定义许多HTML元素的布局和显示属性。
使用样式,即使它是内联样式,而不是:
<span style="color:red">this is red text</span>
如果您使用的是Wicket,则需要确保在标识为setRenderBodyOnly(true)
的组件上未使用service.state
,因为这样会删除<span>
标记风格。
答案 2 :(得分:0)
<span wicket:id="service.state" style="color:red"></span>
或更好的是使用适当的CSS类