Ce PageLayout composant fournit une structure structurée en grille CSS avec quatre zones : En-tête, Navigation, Corps et Pied de page. Il est utilisé pour créer des structures de pages cohérentes à travers votre portail.
La mise en page utilise une grille CSS avec les zones suivantes :
Header — S’étend sur toute la largeur en haut. Il contient généralement un MenuBar avec des boutons de sauvegarde/rafraîchissement ou des titres de page.Navigation — Colonne de gauche sous l’en-tête. Utilisé pour les menus de navigation latérale. Des parchemins indépendants du corps.Body — Domaine principal de contenu. Il défile indépendamment et reçoit automatiquement le remplissage.Footer — S’étend sur toute la largeur en bas. Contient généralement des informations sur le droit d’auteur ou le statut.// La mise en page de React prend le contenu des emplacements via des accessoires (en-tête/navigation/
// corps/pied de page) au lieu d’éléments imbriqués — donne à TypeScript une place pour
// Appliquer des contraintes d’emplacement. Équivalent du balisage Razor à gauche.
<PageLayout
header={
<>
<SaveContextButton />
<RefreshContextButton />
</>
}
navigation={/* Contenu de navigation latérale */}
body={/* Contenu de la page principale */}
footer={<span>© Mon entreprise 2026</span>}
/><PageLayout>
<Header>
<MenuBar>
<SaveContextButton />
<RefreshContextButton />
</MenuBar>
</Header>
<Navigation>
<!-- Contenu de navigation latérale -->
</Navigation>
<Body>
<!-- Contenu de la page principale -->
</Body>
<Footer>
<FluentLabel>© Mon entreprise 2026</FluentLabel>
</Footer>
</PageLayout>Chaque zone peut être affichée ou cachée à l’aide des HeaderVisibleparamètres , NavigationVisible, et FooterVisible . Lorsqu’elle est cachée, la zone est complètement retirée de la disposition de la grille.
<PageLayout
headerVisible
navigationVisible={false}
footerVisible
header="Titre de la page"
body="Contenu sans navigation latérale"
footer="Pied de page"
/><PageLayout HeaderVisible="true"
NavigationVisible="false"
FooterVisible="true">
<Header>Titre de la page</Header>
<Body>Contenu sans navigation latérale</Body>
<Footer>Pied de page</Footer>
</PageLayout>Chaque zone prend en charge à la fois un Class paramètre et Style (par HeaderClassexemple , HeaderStyle, , BodyClassBodyStyle, etc.) pour un style personnalisé. Le conteneur de niveau supérieur prend également en charge Class et Style.
<PageLayout
className="my-page"
style={{ minHeight: '100vh' }}
headerClassName="my-header"
headerStyle={{ backgroundColor: 'var(--colorNeutralBackground5)' }}
bodyClassName="my-body"
bodyStyle={{ padding: '2rem' }}
header="En-tête stylisé"
body="Corps stylisé"
/><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>En-tête stylisé</Header>
<Body>Corps stylisé</Body>
</PageLayout>A PageLayout peut être imbriqué à l’intérieur de l’autre Body PageLayout pour créer des mises en page de sous-pages. La disposition enfant détecte automatiquement le parent et applique une child-layout classe CSS avec un style de bordure d’en-tête réduit.
// Le nidification fonctionne de la même façon — passer un intérieur <PageLayout> comme fente du corps.</PageLayout>
// PageLayoutNestingContext détecte automatiquement le parent et applique le
// variante en disposition enfant (bordure d’en-tête plus fine, remplit le corps du parent
// au lieu du hublot).
<PageLayout
header="En-tête principal"
body={
<PageLayout
header={<SaveContextButton />}
body={/* Contenu des sous-pages */}
/>
}
/><PageLayout>
<Header>En-tête principal</Header>
<Body>
<PageLayout>
<Header>
<MenuBar>
<SaveContextButton />
</MenuBar>
</Header>
<Body>
<!-- Contenu des sous-pages -->
</Body>
</PageLayout>
</Body>
</PageLayout>La zone du corps défile indépendamment de l’en-tête et du pied de page, les maintenant fixes en place. Lors de la navigation entre les pages, le corps défile automatiquement vers le haut. La zone de navigation défile également de façon indépendante.
L’exemple suivant montre un PageLayout avec les quatre zones peuplées.
Utilisez les commandes ci-dessous pour basculer la visibilité de chaque zone et régler le comportement de navigation redimensionnable — activez/désactivez le répartiteur, désactivez la persistance de localStorage, et ajustez les largeurs de traînée par défaut / minimales / maximales. Faites glisser la poignée sur la limite de navigation/corps pour la redimensionner, ou double-cliquez dessus pour remettre à zéro la largeur par défaut.
Nom | Type | Par défaut | Description |
|---|---|---|---|
Body | RenderFragment? | Le contenu est rendu dans la zone principale du corps. C’est la région principale du contenu et défile indépendamment depuis l’en-tête, le pied de page et la navigation. Le rembourrage est appliqué automatiquement. | |
BodyClass | string? | La classe CSS s’applique à l’élément corps. | |
BodyStyle | string? | Le style CSS en ligne appliqué à l’élément du corps. | |
DefaultNavigationWidth | int | 280 | Largeur de navigation en px utilisée avant que l’utilisateur ne redimensionne, et au double-clic pour réinitialiser. Par défaut, |
EnableNavigationResizing | bool | True | Lorsque PageLayout.NavigationVisible est PageLayout.DefaultNavigationWidth. |
Footer | RenderFragment? | Le contenu est rendu dans la zone de pied de page en bas de la mise en page. La semelle couvre toute la largeur et reste fixe pendant que le corps défile. Contient généralement des avis de droits d’auteur ou des informations de statut. | |
FooterClass | string? | CSS s’applique à l’élément de pied de page. | |
FooterStyle | string? | Style CSS en ligne appliqué à l’élément de pied de page. | |
FooterVisible | bool | True | Contrôle si la surface du pied de pied est rendue. Lorsqu’elle est réglée sur |
Header | RenderFragment? | Le contenu est rendu dans la zone d’en-tête en haut de la mise en page. Contient généralement une | |
HeaderClass | string? | CSS appliquée à l’élément d’en-tête. Utilisez cela pour appliquer un style personnalisé comme des couleurs d’arrière-plan ou des bordures. | |
HeaderStyle | string? | Le style CSS en ligne appliqué à l’élément d’en-tête. | |
HeaderVisible | bool | True | Contrôle si la zone de l’en-tête est affichée. Lorsqu’il est mis sur |
MaxNavigationWidth | int | 480 | La plus grande que la colonne de navigation atteindra jamais, en px. Par défaut, PageLayout.EnableNavigationResizing c’est allumé, c’est le Limite supérieure que l’utilisateur peut déplacer sur le répartiteur vers ; Quand il est éteint, c’est le |
MinNavigationWidth | int | 200 | Le plus petit vers lequel la navigation peut être traînée, en px. Par défaut, |
Navigation | RenderFragment? | Contenu rendu dans la zone de navigation à gauche du corps. Des parchemins indépendants du corps. Contient généralement un | |
NavigationClass | string? | La classe CSS s’appliquait à l’élément navigation. | |
NavigationResizeHandleLabel | string | Resize navigation | Étiquette accessible pour le handle de redimensionnement (rendu avec |
NavigationResizeStorageKey | string | ppp-page-layout-nav-width | clé localStorage, la largeur de navigation choisie persiste sous . Par défaut à Layout.PageLayout est reprise. Ignoré quand PageLayout.PersistNavigationWidth est |
NavigationStyle | string? | Le style CSS en ligne appliqué à l’élément de navigation. | |
NavigationVisible | bool | True | Contrôle si la zone de navigation est affichée. Lorsqu’elle est mise sur |
PersistNavigationWidth | bool | True | Lorsque PageLayout.NavigationResizeStorageKey et restauré lors des chargements suivants. Réglez sur PageLayout.DefaultNavigationWidth. Seulement quand il n’y a de sens PageLayout.EnableNavigationResizing est |
ValidationSummaryVisible | bool | True | Contrôle l’affichage du résumé de validation. Par défaut, |
BodyBodyClassBodyStyleDefaultNavigationWidthEnableNavigationResizingPageLayout.NavigationVisible est PageLayout.DefaultNavigationWidth.FooterFooterClassFooterStyleFooterVisibleHeaderHeaderClassHeaderStyleHeaderVisibleMaxNavigationWidthPageLayout.EnableNavigationResizing c’est allumé, c’est le Limite supérieure que l’utilisateur peut déplacer sur le répartiteur vers ; Quand il est éteint, c’est le MinNavigationWidthNavigationNavigationClassNavigationResizeHandleLabelNavigationResizeStorageKeyLayout.PageLayout est reprise. Ignoré quand PageLayout.PersistNavigationWidth est NavigationStyleNavigationVisiblePersistNavigationWidthPageLayout.NavigationResizeStorageKey et restauré lors des chargements suivants. Réglez sur PageLayout.DefaultNavigationWidth. Seulement quand il n’y a de sens PageLayout.EnableNavigationResizing est ValidationSummaryVisible