Größe center layoutunit in PrimeFaces dyanmically basierend auf den Inhalten
Ich habe eine Seite mit einem "header", "footer", "side-menu" und "content-Bereich".
Ich versuche, mich zu arrangieren mit PrimeFaces-layouts wie folgt:
Header -->North
Footer --> Süden
Seite im Menü --> Osten
Content Area --> Center
Auf den ersten Blick, es ist in Ordnung arbeiten.
Jedoch, meine Seite Menü enthält links, die Inhalte der center-Bereich. Derzeit, wenn ich auf einen der links, der center-Bereich ist der Inhalt wird sich ändern und eine vertikale Bildlaufleiste angezeigt wird in den mittleren Bereich, wenn die neuen Inhalte haben eine Länge, die größer ist als diejenige definiert, die für das Zentrum layoutunit.
Das Verhalten, das ich Suche, ist zum ändern der Größe des center-Bereich dynamisch, Druck nach unten der footer (south layoutunit) und zeigt eine Bildlaufleiste an, für die ganze Seite.
Ist es richtig, dass ich mit PrimeFaces-layouts? Sollte ich etwas anderes verwenden?
Hier ist mein "Körper" code:
<h:body>
<p:layout fullPage="true">
<p:layoutUnit position="north" size="100">
<ui:include src="header.xhtml" />
</p:layoutUnit>
<p:layoutUnit position="south" size="200">
<ui:include src="footer.xhtml" />
</p:layoutUnit>
<p:layoutUnit position="east" size="260">
<ui:include src="side-menu.xhtml" />
</p:layoutUnit>
<p:layoutUnit position="center">
<ui:insert name="body-content">
</ui:insert>
</p:layoutUnit>
</p:layout>
</h:body>
Vielen Dank für Ihre Hilfe
p:layout
ich kann einen Rat zu geben.Faruk Almalı ja, ich bin für alles offen. Bitte beraten.
Sie sollten überprüfen, meine Antwort.
InformationsquelleAutor SaryAssad | 2013-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Antwort: Es hängt davon ab. Ich denke,
p:layout fullPage="true"
ist eine Komponente, für die möchte eine Seite erstellen, super schnell, einfach und wer nicht genug Zeit mit Arbeit und view-Schicht. Wenn das Vorzeigebeispiel ist entsprechend Ihren Anforderungen kaum, dann gibt es keinen Grund, es fallen zu lassen.Aber wenn Sie wollen, um anzupassen oder zu ändern, die das Verhalten oder die Funktionalität zu stoppen und Rollen Sie Ihre eigenen.
Vorbereitet habe ich ein kickoff Beispiel, die Ihren Bedürfnissen entspricht, wie ich schon sagte, es ist nicht vollständig, aber es kann Sie begeistern. Beginnen wir mit Komponenten;
Wie Sie sehen können, dies sind die grundlegenden PrimeFaces Komponenten, zeigen hier die CSS selbst. (Ich habe p:fieldset, Ursache ich mag es looknfeel können Sie
p:panel
statt).Beginnen wir mit
footer
. Es ist eine Sache, die verdient erwähnt zu werden, es ist die position, wir sind einfach platzieren es unten auf der Seite überbottom:0px
undposition:absolute
.Center-Komponente ist HORIZONTAL zentriert, indem
margin 0 auto
. Es gibt andere Möglichkeiten, das zu tun sicherlich. Auch, wenn Sie wollen, um es vertikal, es ist einfach zu tun, über die Marge. Undmargin-top:70px
ist nur zu verhindern, überlappen sich mit north-panel.Ost positioniert ist, um die meisten Links und Westen; Umgekehrt ist.
Nord-Komponente ist ebenso wie die Fußzeile, aber es ist auf der Oberseite natürlich über
top:0px
.Jetzt Seite aussieht sth. ähnlich
p:layout fullPage="true"
. Sie sollten sich anpassen, es ist looknfeel natürlich, vielleicht können Sie einen Blick auf neuere CSS-Eigenschaften wiebox-shadow
(für north-panel) oder etc. Also über Ihre Anforderung:Habe ich vorbereitet, Inhalte, die zunächst überläufe aus dem center-panel und dann gibt es eine Schaltfläche in der Fußzeile, die sagt sth. über Magie und ruft
makeMe()
js-Funktion welche nicht:Einfach erweitert die
p:panel
's Höhe, jetzt, wenn es 100 Elemente im Inhalt, es wird Kompass alle von Ihnen. Und überposition:relative
wir sagen Fußzeile "nicht dort bleiben, nur kleben unten in der center-Komponente."Dies ist, wie es aussieht zunächst:
Wenn Sie laden Ihre Inhalte über ajax gibt es nicht eine scrollbar zunächst. Ich Kopier einfach viel text, das ist, warum es ist eine scrollbar zunächst.
Klicken Sie auf den button:
Wenn dort ist problem nur warnen, der mir, hoffe, das hilft.
Das ist vollkommen an mir zu arbeiten. Sie sagen, wenn Sie klicken Sie auf die Schaltfläche Fußzeile wird nicht angezeigt, richtig?
InformationsquelleAutor Ömer Faruk Almalı