我正在尝试使用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>
输出:
GPRS显示在JSF页面中,它不是对话框的一部分。但是,由于对话框是透明的,所以它是可见的。
注意: 我正在使用 primefaces-mobile-0.9.3.jar
答案 0 :(得分:5)
我已经尝试在我的JSF页面中覆盖对话框组件的css样式 (注释!important 表达式):
<p:dialog id="myDialog" header="ERROR" widgetVar="dlg" modal="true"
style="background: gray !important;" appendToBody="true">
<p:commandButton id="decline" value="Couldn't display the report!"
onclick="dlg.hide()" type="button" />
</p:dialog>
现在,对话框现在更好了,看起来像是:
但是,在我的项目中覆盖PrimeFaces库的常规样式表可能会帮助我更多地自定义对话框。
我的动态网络项目中的样式表路径: WebContent / assets / css / style.css 这可能是面对类似问题的人的参考。
答案 1 :(得分:1)
在提供自定义主题时,您应该创建主题文件。 PrimeFaces的默认主题是Aristo。有关如何创建自定义主题的详细信息,请参阅PrimeFaces Guide或mobile PrimeFaces Guide。
如果您不想创建完整主题,则应用默认主题。要覆盖应用主题中的样式,您需要使用!important
。 (你已经发现了这一点。)
我使用的有用工具是FireBug。 FireBug显示哪些CSS规则应用于元素以及哪些规则被覆盖。
答案 2 :(得分:0)
对于遇到此问题的每个人,我只想找到一个解决方案:
<p:dialog header="Header" widgetVar="dlg1" showEffect="pop"
styleClass="ui-page-theme-a ui-bar-inherit">
将primefaces inherit类添加到对话框中,默认情况下会显示。