5

我正在尝试在我的 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

4

3 回答 3

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 库的一般样式表可能会帮助我更多地自定义对话框。

我的动态 Web 项目中样式表的路径:WebContent/assets/css/style.css 这可以作为面临类似问题的人的参考。

于 2012-10-19T07:47:50.790 回答
1

提供自定义主题时,您应该创建一个主题文件。PrimeFaces 的默认主题是 Aristo。有关如何创建自定义主题的更多信息,请参阅PrimeFaces 指南移动 PrimeFaces 指南

但是,如果您不想创建完整的主题,则应用默认主题。要覆盖应用主题中的样式,您需要使用!important. (不过,您已经发现了这一点。)

我使用的一个有用的工具是 FireBug。FireBug 显示哪些 CSS 规则应用于元素以及哪些规则被覆盖。

于 2012-10-19T12:52:50.693 回答
-1

对于遇到此问题的每个人,我只是找到了一个解决方案:

<p:dialog header="Header" widgetVar="dlg1" showEffect="pop"
            styleClass="ui-page-theme-a ui-bar-inherit">

将primefaces继承类添加到对话框中,它会默认出现。

于 2014-12-02T21:38:46.370 回答