如何覆盖PrimeFaces的样式表?

mer*_*esi 12 css jsf primefaces

简单地说,我试图通过FireBug在生成的HTML中查看组件的名称,之后我在JSF项目中手动定义的css中更改它,但无法覆盖PrimeFaces的CSS定义.提前感谢任何想法.

Rav*_*avi 14

如果使用primefaces 2.2.1,请使用h:outputStylesheet标记并将其包含在h:body中,而不是h:head中,以覆盖primefaces样式表,与h:outputScript相同.

例:

<h:body>
  <h:outputStylesheet library="css" name="YOURSTYLES.css" />
  <h:outputScript library="javascript" name="YOURSCRIPT.js" target="head" />
</h:body>
Run Code Online (Sandbox Code Playgroud)

如果使用primefaces 3,请关注此博客条目 https://www.primefaces.org/resource-rendering/


Jen*_*ens 8

添加@Ravi已经回答的内容:

从primefaces 3.0开始,您可以自定义资源的顺序.但是,当我尝试它时,它起初没有工作.

事实证明我无法使用JSF组件来包含这样的css:

<f:facet name="last">
    <h:outputStylesheet library="css" name="bootstrap.css" />
</f:facet>
Run Code Online (Sandbox Code Playgroud)

相反,我不得不使用:

<f:facet name="last">
    <link rel="stylesheet" type="text/css" href="#{facesContext.externalContext.requestContextPath}/resources/css/bootstrap.css" />
</f:facet> 
Run Code Online (Sandbox Code Playgroud)

只有这样,订购才开始起作用.

编辑:如果你把它facet放入body(而不是head),我的答案是多余的.就像拉维在他的回答中写道的那样.(我一定以某种方式错过了.)

这样做也是不可取的,因为这样就不会处理资源,FacesServlet而且css内部的路径问题也会出现.比较BalusC的答案.