Die Komponente PageLayout bietet ein strukturiertes CSS-Grid-Layout mit vier Bereichen: Header, Navigation, Body und Footer. Es wird verwendet, um konsistente Seitenstrukturen in Ihrem Portal zu erstellen.
Das Layout verwendet ein CSS-Raster mit folgenden Bereichen:
Header — Erstreckt sich über die gesamte Breite an der Spitze. Enthält typischerweise Speichern MenuBar /Aktualisieren-Buttons oder Seitentitel.Navigation — Linke Spalte unterhalb der Überschrift. Verwendet für Seitennavigationsmenüs. Scrollt unabhängig vom Körper.Body — Hauptinhaltsbereich. Es scrollt unabhängig und erhält automatisch Auffüllung.Footer — Erstreckt sich über die gesamte Breite am unteren Rand. Enthält typischerweise Urheberrechts- oder Statusinformationen.// Reacts PageLayout nimmt Slot-Inhalte über Requisiten (Header/Navigation/
// body/footer) statt verschachtelter Elemente – gibt TypeScript einen Platz für
// Setze Slot-Beschränkungen durch. Entspricht dem Razor-Markup auf der linken Seite.
<PageLayout
header={
<>
<SaveContextButton />
<RefreshContextButton />
</>
}
navigation={/* Seitennavigationsinhalt */}
body={/* Hauptseiteninhalt */}
footer={<span>© Mein Unternehmen 2026</span>}
/><PageLayout>
<Header>
<MenuBar>
<SaveContextButton />
<RefreshContextButton />
</MenuBar>
</Header>
<Navigation>
<!-- Seitennavigationsinhalt -->
</Navigation>
<Body>
<!-- Inhalt der Hauptseite -->
</Body>
<Footer>
<FluentLabel>© Mein Unternehmen 2026</FluentLabel>
</Footer>
</PageLayout>Jeder Bereich kann mit den Parametern HeaderVisible, NavigationVisible, und FooterVisible angezeigt oder versteckt werden. Wenn der Bereich versteckt ist, wird er vollständig aus dem Rasterlayout entfernt.
<PageLayout
headerVisible
navigationVisible={false}
footerVisible
header="Seitentitel"
body="Inhalt ohne Seitennavigation"
footer="Fuß"
/><PageLayout HeaderVisible="true"
NavigationVisible="false"
FooterVisible="true">
<Header>Seitentitel</Header>
<Body>Inhalt ohne Seitennavigation</Body>
<Footer>Fuß</Footer>
</PageLayout>Jeder Bereich unterstützt sowohl einen Class Parameter als auch Style (z. B. HeaderClass, HeaderStyle, BodyClass, BodyStyle, , usw.) für benutzerdefiniertes Design. Der oberste Container unterstützt Class außerdem und Style.
<PageLayout
className="my-page"
style={{ minHeight: '100vh' }}
headerClassName="my-header"
headerStyle={{ backgroundColor: 'var(--colorNeutralBackground5)' }}
bodyClassName="my-body"
bodyStyle={{ padding: '2rem' }}
header="Stilisierter Header"
body="Stilierte Karosserie"
/><PageLayout HeaderClass="my-header"
HeaderStyle="background-color: var(--neutral-layer-4);"
BodyClass="my-body"
BodyStyle="padding: 2rem;"
Class="my-page"
Style="min-height: 100vh;">
<Header>Stilisierter Header</Header>
<Body>Stilierte Karosserie</Body>
</PageLayout>A PageLayout kann innerhalb eines Body anderen PageLayout verschachtelt werden, um Unterseitenlayouts zu erstellen. Das Kind-Layout erkennt automatisch den Elternteil und wendet eine child-layout CSS-Klasse mit reduziertem Header-Rand-Styling an.
// Das Nesting funktioniert genauso – ein inneres <PageLayout> als Körper-Slot passieren lassen.</PageLayout>
// PageLayoutNestingContext erkennt den Elternteil automatisch und wendet das
// Kind-Layout-Variante (dünnerer Header-Rand, füllt den Hauptkörper aus
// Fläche statt des Sichtfensters).
<PageLayout
header="Hauptüberschrift"
body={
<PageLayout
header={<SaveContextButton />}
body={/* Unterseiteninhalt */}
/>
}
/><PageLayout>
<Header>Hauptüberschrift</Header>
<Body>
<PageLayout>
<Header>
<MenuBar>
<SaveContextButton />
</MenuBar>
</Header>
<Body>
<!-- Unterseiteninhalt -->
</Body>
</PageLayout>
</Body>
</PageLayout>Der Körperbereich scrollt unabhängig vom Kopf und Fuß und hält sie an Ort und Stelle. Beim Navigieren zwischen den Seiten scrollt der Hauptteil automatisch nach oben. Der Navigationsbereich scrollt ebenfalls unabhängig.
Das folgende Beispiel zeigt ein PageLayout mit allen vier bewohnten Gebieten.
Nutzen Sie die untenstehenden Steuerungen, um die Sichtbarkeit jedes Bereichs zu aktivieren und das Navigationsverhalten mit der Größenanpassung anzupassen – schalten Sie den Splitter ein/aus, deaktivieren Sie die Persistenz des lokalen Speichers und passen Sie die Standard-/Mindest-/Maximal-Widerstandsbreiten an. Ziehe den Griff an der Navigations-/Körpergrenze, um die Größe zu ändern, oder doppelklicke ihn, um auf die Standardbreite zurückzusetzen.
Name | Typ | Default | Beschreibung |
|---|---|---|---|
Body | RenderFragment? | Inhalte werden im Hauptkörperbereich dargestellt. Dies ist der primäre Inhaltsbereich und scrollt unabhängig voneinander Von Kopf, Fuß und Navigation. Polsterung wird automatisch angewendet. | |
BodyClass | string? | Der CSS-Kurs wurde auf das Körperelement angewendet. | |
BodyStyle | string? | Inline-CSS-Stil auf das Karosserieelement angewendet. | |
DefaultNavigationWidth | int | 280 | Navigationsbreite in px, die vor der Benutzergröße und beim Doppelklick-Reset verwendet wird. Standardmäßig steht |
EnableNavigationResizing | bool | True | Wenn PageLayout.NavigationVisiblePageLayout.DefaultNavigationWidth. |
Footer | RenderFragment? | Inhalte werden im Fußbereich am unteren Rand des Layouts gerendert. Das Fundament erstreckt sich über die gesamte Breite und bleibt fest, während der Hauptteil scrollt. Enthält typischerweise Urheberrechtshinweise oder Statusinformationen. | |
FooterClass | string? | Der CSS-Kurs wurde auf das Fußelement angewendet. | |
FooterStyle | string? | Inline-CSS-Stil angewendet auf das Footer-Element. | |
FooterVisible | bool | True | Kontrolliert, ob der Fußbereich gerendert wird. Wenn auf |
Header | RenderFragment? | Inhalte werden im Header-Bereich oben im Layout gerendert. Enthält typischerweise eine | |
HeaderClass | string? | Die CSS-Klasse wurde auf das Header-Element angewendet. Verwenden Sie diese, um benutzerdefinierte Stile wie Hintergrundfarben oder Ränder anzuwenden. | |
HeaderStyle | string? | Inline-CSS-Stil, angewendet auf das Header-Element. | |
HeaderVisible | bool | True | Kontrolliert, ob der Headerbereich gerendert wird. Wird der Header auf |
MaxNavigationWidth | int | 480 | Das größte, was die Navigationssäule je erreichen wird, in px. Standardmäßig steht PageLayout.EnableNavigationResizing aktiviert ist, ist dies das obere Schranke, auf die der Benutzer den Splitter ziehen kann; Wenn es aus ist, ist das das Das Element ist |
MinNavigationWidth | int | 200 | Kleinste, auf die die Navigation gezogen werden kann, in px. Standardmäßig steht |
Navigation | RenderFragment? | Inhalt wird im Navigationsbereich links vom Körper gerendert. Scrollt unabhängig vom Körper. Enthält typischerweise ein | |
NavigationClass | string? | Die CSS-Klasse wurde auf das Navigationselement angewendet. | |
NavigationResizeHandleLabel | string | Resize navigation | Zugängliches Label für den Resize-Handle (gerendert mit |
NavigationResizeStorageKey | string | ppp-page-layout-nav-width | localStorage-Taste Die gewählte Navigationsbreite wird unter gespeichert. Standardeinstellungen zu Layout.PageLayout kann gezeigt werden. Ignoriert, wenn PageLayout.PersistNavigationWidth |
NavigationStyle | string? | Der Inline-CSS-Stil wurde auf das Navigationselement angewendet. | |
NavigationVisible | bool | True | Kontrolliert, ob der Navigationsbereich gerendert wird. Wenn sie auf |
PersistNavigationWidth | bool | True | Wenn PageLayout.NavigationResizeStorageKey und bei folgenden Ladungen wiederhergestellt. Auf PageLayout.DefaultNavigationWidth. Nur dann sinnvoll, wenn PageLayout.EnableNavigationResizing |
ValidationSummaryVisible | bool | True | Kontrolliert, ob die Validierungszusammenfassung angezeigt wird. Standardmäßig steht |
BodyBodyClassBodyStyleDefaultNavigationWidthEnableNavigationResizingPageLayout.NavigationVisiblePageLayout.DefaultNavigationWidth.FooterFooterClassFooterStyleFooterVisibleHeaderHeaderClassHeaderStyleHeaderVisibleMaxNavigationWidthPageLayout.EnableNavigationResizing aktiviert ist, ist dies das obere Schranke, auf die der Benutzer den Splitter ziehen kann; Wenn es aus ist, ist das das Das Element ist MinNavigationWidthNavigationNavigationClassNavigationResizeHandleLabelNavigationResizeStorageKeyLayout.PageLayout kann gezeigt werden. Ignoriert, wenn PageLayout.PersistNavigationWidthNavigationStyleNavigationVisiblePersistNavigationWidthPageLayout.NavigationResizeStorageKey und bei folgenden Ladungen wiederhergestellt. Auf PageLayout.DefaultNavigationWidth. Nur dann sinnvoll, wenn PageLayout.EnableNavigationResizingValidationSummaryVisible