我會非常感謝一些關於如何處理上述問題的專家意見。大體上它是這樣分解的: 我已經實現了一個動態創建的rich:panelMenu
,並且根據RichFaces演示,將a4j:outputPanel
放在正確的位置以便包含當用戶單擊菜單中的項目時出現的內容。代碼是:如何頂級豐富:panelMenu豐富:outputPanel與h:panelGrid?
<h:form>
<a4j:region id="logs">
<h:panelGrid columns="2" border="0" style="width: 100%; margin: auto;">
<rich:panel header="Menu">
<rich:panelMenu mode="ajax" style="width: 300px">
<!-- feed iteration -->
<c:forEach items="#{MyBacking.panelNodes}" var="map">
<rich:panelMenuGroup label="#{map.key}"
style="padding-left: 10px;">
<c:forEach items="${map.value}" var="entry">
<rich:panelMenuItem label="#{entry}"
style="padding-left: 20px;"
action="#{MyBacking.updateCurrent}">
<f:param name="current" value="#{entry}" />
</rich:panelMenuItem>
</c:forEach>
</rich:panelMenuGroup>
</c:forEach>
</rich:panelMenu>
</rich:panel>
<rich:panel header="Content">
<a4j:outputPanel ajaxRendered="true" layout="inline"
style="vertical-align: top">
<h:outputText value="#{MyBacking.current}" id="current" />
</a4j:outputPanel>
</rich:panel>
</h:panelGrid>
</a4j:region>
</h:form>
[注意a4j:outputPanel
有CSS嘗試和垂直對齊到頂部,但含rich:panel
一直是我的重點主要表現]
的問題是:
1:我就像兩個組件要水平對齊,所以兩者的頂部都是水平的。我使用h:panelGrid
來嘗試和控制菜單和outputPanel,但即使它呈現表格,vertical-align
似乎也不起作用。
我認爲它可能最終被應用於錯誤的地方,因此不起作用(例如包含跨度 - 雖然理論上在另一個元素內部的元素應該打開以由該屬性控制)。
<h:panelGrid columns="2" border="0" style="width: 100%; margin: auto;">
也沒有工作。我至少在正確的軌道上?由於右側面板將包含文件的內容,因此它將比面板菜單長很多。我需要防止panelMenu沿着outputPanel的左側滑動(現在正在發生的垂直對齊的中間)。
2:我想用px修正panelMenu
的寬度,但是如果菜單最終包含一個太長的條目,我注意到這個溢出看起來被固定在隱藏處。我似乎無法獲得overflow: auto
的工作。我只需要一個水平。在這種情況下滾動條。
3:panelGrid的必須是100%它包含在我聽過的h:panelGrid
width:100%
造成的問題,所以如果這仍然是我怎樣才能得到它周圍的情況下選項卡的寬度。?
我希望這是有道理的。我已經使用了一段時間的css,但是迫使我想要射入RF組件比我想象的更加棘手。
非常感謝