如何使用全页面布局在Primefaces扩展中获取菜单溢出?

时间:2012-06-15 10:37:42

标签: jsf primefaces overflow primefaces-extensions

问题是我的菜单总是在中心窗格下,我不知道如何解决这个问题。我试图更改css,但是当更改pe-layout-pane-content溢出值时,滚动条不再可见,如果没有它,pe-north中的z-index根本没有帮助。这让我抓狂,因为它曾经在使用p:layout和css-changes时工作。

我只有这样的模板:

<h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

        <h:outputStylesheet library="css" name="global.css"/>
        <style type="text/css">


            .noBorders tr, .noBorders td {
                background: none !important;
                border: none !important;
            } 
        </style>
 </h:head>

    <h:body>

        <pe:layout  fullPage="true" > 

            <pe:layoutPane  position="north" size="50"  resizable="false" closable="false" spacing="0" rendered="true" >  
                <ui:insert name="north">

                    <ui:include src="/resources/templates/menuBar.xhtml"/>    
                </ui:insert>
            </pe:layoutPane>  



            <pe:layoutPane position="west" size="215"  resizable="true" closable="true" spacing="-3">  
                <ui:insert name="west">

                </ui:insert>         
            </pe:layoutPane>   



            <pe:layoutPane position="east" size="200"  resizable="true" closable="true" spacing="-4" >  
                <ui:insert name="east"> 

                    <ui:include src="/resources/templates/commonRight.xhtml"/>  
                </ui:insert>
            </pe:layoutPane> 




            <pe:layoutPane position="center"  size="800" resizable="false">  
                <h2>
                    <ui:insert name="title">Default Title</ui:insert>
                </h2>

                <ui:insert name="center">

                    Center from newTemplate

                </ui:insert>
            </pe:layoutPane> 

            <pe:layoutPane position="south" rendered="false" statusbar="false" size="60"  resizable="true" closable="true" spacing="0">  
                <ui:insert name="south">


                    <ui:include src="/resources/templates/commonFooter.xhtml"/>


                </ui:insert>
            </pe:layoutPane>  

        </pe:layout>  
    </h:body>

然后我的menuBar.xhtml就是这样:

<h:head>
        <title>menuBar.xhtml</title>



    </h:head>
    <h:body>
        <ui:composition>
            <h:form>
                <p:menubar rendered="true" style="border: none; z-index: 9998; overflow: visible" >
<p:submenu label="#{bundle.menuBar_partners}" icon="ui-icon-document">
                        <p:menuitem value="#{bundle.menuBar_partners_info}" url="#"/>
                        <p:submenu label="cars" icon="ui-icon-contact" >
                            <p:menuitem value="www.rangerover.com" url="http://www.rangerover.com"/>
                            <p:menuitem value="www.lada.com" url="www.lada.com"/>
                        </p:submenu>
</p:submenu>


                </p:menubar>


            </h:form>
        </ui:composition>

    </h:body>

如果有人知道如何解决这个问题,我将非常感激。 萨米

3 个答案:

答案 0 :(得分:4)

当我使用带有常规primefaces布局和layoutUnit的CSS时,溢出对我的北菜单工作正常,但是当我使用与pe布局和layoutPane相同的CSS时,它不会。

.ui-layout-north {
    z-index:40 !important;
    overflow:visible !important;
}
.ui-layout-north .ui-layout-unit-content {
    overflow:visible !important;
}

也许你现在可以切换到p layout和layoutUnit,因为primefaces扩展似乎打破了CSS的溢出。

另外,对于pe,我在我的北菜单的右边有一个愚蠢的滚动条但是我没有。

而且,如果Oleg为我们提供了一个CSS解决方案,如果有一个解决方案并且在他的更新修复此问题时让我们发布,那可能会很好。

答案 1 :(得分:1)

你应该对你的css进行以下更改

.ui-layout-north {
     z-index:40 !important;
     overflow:overflow !important;
}

.ui-layout-north .ui-layout-unit-content {
    overflow:overflow !important;
}

答案 2 :(得分:0)

萨米,我们在PF扩展论坛http://forum.primefaces.org/viewtopic.php?f=14&t=22621&start=20中讨论了这个问题。你现在有了滚动条。关于菜单,尝试在菜单上使用更高的z-index。

我打算在下一个版本中重新实现布局组件来修复一些已知问题,使用更多功能增强布局,并允许在嵌套子布局上进行AJAX更新。

Thansk。奥列格。