使用JSF和PrimeFaces覆盖/实现CSS

时间:2012-10-21 13:41:02

标签: css jsf primefaces

我使用JSF和PrimeFaces,我尝试通过更改或添加一些CSS行来修改渲染。

我将名为“styles.css”的CSS文件添加到我的.xhtml页面,并在PrimeFaces之后加载,因此我可以覆盖默认值。

PrimeFaces在我的页面中创建一个div:

<div id="j_idt13:universe" class="ui-selectonemenu ui-widget ui-state-default ui-corner-all ui-helper-clearfix" style="width: 86px;">
....
</div>

我正在尝试将86px大小更改为100%,所以在我的styles.css中我添加了:

#j_idt13:universe{
    width: 100%;    
}

但它不起作用...当我检查源代码时使用Firebug,我的#j_idt13:universe不会出现在任何地方......

我可以通过访问类选择器(.class)而不是使用id选择器(#id)来更改一些CSS。

就我而言,我怎样才能将86px更改为100%?

由于

奥利弗

1 个答案:

答案 0 :(得分:3)

冒号:CSS selectors中的一个特殊字符,表示伪选择器的开头。如果要将冒号字面表示为元素ID或类名的一部分,则必须使用\对其进行转义。

#j_idt13\:universe {

}

请注意,这在IE6 / 7中不起作用。您需要使用\3A代替(使用尾随空格)。

#j_idt13\3A universe {

}

另请注意,当您向视图添加另一个JSF组件时,这将失败,因为j_idt13是一个自动生成的ID,具体取决于组件在视图中的位置,而不是固定ID。而是给父UINamingContainer组件一个固定的ID,或者更好,给目标组件一个样式类,这样你就可以使用类选择器了。

另见: