我已经创建了自己的主题作为单独的Maven项目,并且它已正确加载.
现在我想改变组件的大小.例如,a <p:orderList>.它有一个名为的类ui-orderlist-list,它primefaces.css以固定的200x200维度定义.无论我在我身上做什么theme.css,它都会被这个属性所覆盖,我无法将内容作为<p:orderList>更广泛的内容.
对于其他组件,我可能只想覆盖组件的一个实例,而不是全部.
任何人都可以告诉我,我怎么能做到这一切?
我经常使用图像属性更改按钮的图像,但有人告诉我,使用.css这是一个很好的做法我试过但我不能,我做错了什么?这就是我做的:
1 - 我的项目资源存储如下:

2 - 这就是我创建style.css以访问图像的方式
.c2 {
background: url(/resources/images/smiley.jpg);
}
Run Code Online (Sandbox Code Playgroud)
3 - 这是我从我的页面正文访问css的方式(我确定这是正确的,因为同一文档中的其他类适用于此页面中的其他标记)
<h:outputStylesheet library="css" name="style.css" />
Run Code Online (Sandbox Code Playgroud)
4 - 这是创建使用适当的css类的示例commandButton的方法
<h:commandButton styleClass="c2"/>
Run Code Online (Sandbox Code Playgroud)
我认为问题出现在.css中,我尝试了几种组合但没有效果:
background-image: url(/resources/images/smiley.jpg);
background: url(resources/images/smiley.jpg);
background: url(smiley.jpg);
background: url(../smiley.jpg);
Run Code Online (Sandbox Code Playgroud)
哪里出错了?
更新 我设法通过以下代码使其工作:
.c2 {
background: url("#{resource['images:smiley.jpg']}");
}
Run Code Online (Sandbox Code Playgroud)
注意我使用css(右)和使用图像属性时的差异(左)

我怎么能解决这个问题,以便显示保持图像?
我正在尝试使用我的JSF页面中的Primefaces Dialog组件显示警报.我可以显示对话框,但问题在于此对话框的透明度/不透明度.我通过设置覆盖了对话框的样式属性opacity: 1.0,但它没有用.我想放弃对话框的透明度.我怎样才能以简单的方式实现这一目标?
我的JSF页面:
<f:view xmlns="http://www.w3.org/1999/xhtml"
....
renderKitId="PRIMEFACES_MOBILE">
....
<pm:page title="Mobile Reports">
<pm:view id="reports" swatch="b">
<h:form>
<pm:content>
<div>
<h:form>
....
<p:dialog id="myDialog"
header="ERROR"
widgetVar="dlg"
modal="true"
style="opacity: 1.0;"
appendToBody="true">
<p:commandButton id="decline" value="Couldn't display the report!"
onclick="dlg.hide()" type="button" />
</p:dialog>
....
<p:commandButton id="contractInfo" action="ContractInfo.xhtml"
value="Contract Information" style="width:100%;"
onerror="dlg.show();">
</p:commandButton>
....
</h:form>
</div>
</pm:content>
</h:form>
</pm:view>
</pm:page>
</f:view>
Run Code Online (Sandbox Code Playgroud)
输出:

GPRS显示在JSF页面中,它不是对话框的一部分.但是,由于对话框是透明的,因此它是可见的.
注意: 我正在使用primefaces-mobile-0.9.3.jar
我有一个JSF页面.我也使用Primefaces.在页面的底部,我有两个执行JSF表单的按钮:
<div id="settingstwodivthree" style="width:400px; height:60px; position:absolute; background-color:transparent; top:380px; left:800px">
<p:commandButton value="Save Settings" id="ajax" actionListener="#{GeneralController.updateDBSettings}" rendered="true" update="growl,settingsupdate"/>
<p:commandButton value="Default Settings" id="defaultsettings" actionListener="#{GeneralController.defaultSettings}" rendered="true" update="settingsupdate"/>
</div>
Run Code Online (Sandbox Code Playgroud)
当我将Primefaces添加到JSF页面时,按钮的默认布局会发生变化.看来Primefaces的css文件覆盖了按钮的布局.
我把它添加到web.xml文件中:
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>none</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在.有什么方法可以禁用css覆盖?
我正在尝试修改PrimeFaces 菜单(不是 MenuBar),使其水平显示。
我正在尝试应用这样的样式:
<h:form>
<p:menu styleClass="horizontalMenu">
<p:menuitem value="Home" url="./home.xhtml"/>
<p:menuitem value="Contact Us" url="./contactUs.xhtml"/>
<p:menuitem value="Shop" url="./shop.xhtml"/>
</p:menu>
</h:form>
Run Code Online (Sandbox Code Playgroud)
在单独的 CSS 文件中,我有以下内容:
.horizontalMenu li {
display:inline;
float:none;
}
Run Code Online (Sandbox Code Playgroud)
但是,我的样式总是被 PrimeFaces 样式覆盖(例如 .ui-menuitem)。
我希望有一个非全局的解决方案,因为我可能也需要垂直菜单,所以这排除了编辑主题的 CSS 文件。
我想改变selectOneMenu的背景颜色.当我尝试设置样式时,style="background-color:#f6f6f6"根本没有变化.
我尝试用a包装它div并为它添加一个定义到style.css但到目前为止没有任何变化.