La règle @ @page est utilisée afin de modifier certaines propriétés CSS lorsqu'on imprime un document. La règle @page ne permet par de modifier toutes les propriétés mais uniquement celles qui portent sur les marges, les lignes orphelines et veuves ainsi que les sauts de page du document. Si on utilise cette règle @ pour modifier une autre propriété, ce changement sera ignoré.

@page {
  margin: 1cm;
}

@page :first {
  margin: 2cm;
}

La règle @ @page peut être manipulée via le CSSOM, notamment avec l'interface CSSPageRule.

Note : Le W3C est en train de discuter de la gestion des unités de longueur (<length>) relative à la zone d'affichage (viewport) : vh, vw, vmin et vmax. En attendant, il est conseillé de ne pas les utiliser au sein d'une règle @page.

Syntaxe

Descripteurs

size
Définit la taille et l'orientation du bloc englobant la boîte de la page. En général, lorsqu'une boîte correspondant à une page est rendu sur une feuille, cela indique la taille de la page utilisée.
marks
Ajoute des marques pour la découpe ou l'alignement des pages du document.
bleed
Définit la limite au-delà de la boîte de la page au-delà de laquelle le contenu affiché est rogné.

Syntaxe formelle

@page <page-selector-list> {
  <page-body>
}


<page-selector-list> = [ <page-selector># ]?
<page-body> = <declaration>? [ ; <page-body> ]? | <page-margin-box> <page-body>


<page-selector> = <pseudo-page>+ | <ident> <pseudo-page>*
<page-margin-box> = <page-margin-box-type> { <declaration-list> }


<pseudo-page> = : [ left | right | first | blank ]
<page-margin-box-type> = @top-left-corner | @top-left | @top-center | @top-right | @top-right-corner | @bottom-left-corner | @bottom-left | @bottom-center | @bottom-right | @bottom-right-corner | @left-top | @left-middle | @left-bottom | @right-top | @right-middle | @right-bottom

Exemples

@page :first {
  margin: 2cm 3cm;
} 

Pour d'autres exemples, voir les pages qui concernent les pseudo-classes liées à @page :

Spécifications

Spécification État Commentaires
CSS Logical Properties and Values Level 1
La définition de ':recto and :verso' dans cette spécification.
Brouillon de l'éditeur Ajout des sélecteurs de page :recto et :verso.
CSS Paged Media Module Level 3
La définition de '@page' dans cette spécification.
Version de travail Aucun changement depuis  CSS Level 2 (Revision 1), bien que plus de règles @ puissent être utilisées au sein d'une règle @page.
CSS Level 2 (Revision 1)
La définition de '@page' dans cette spécification.
Recommendation Définition initiale.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung Internet
Support simpleChrome Support complet 2Edge Support complet OuiFirefox Support complet 19IE Support complet 8Opera Support complet 6Safari Aucun support NonWebView Android ? Chrome Android ? Edge Mobile Support complet OuiFirefox Android Support complet 19Opera Android ? Safari iOS ? Samsung Internet Android ?
bleed descriptor
Expérimentale
Chrome ? Edge ? Firefox ? IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
marks descriptor
Expérimentale
Chrome ? Edge ? Firefox Aucun support NonIE ? Opera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android Aucun support NonOpera Android ? Safari iOS ? Samsung Internet Android ?
size descriptor
Expérimentale
Chrome ? Edge ? Firefox ? IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : SphinxKnight, fscholz, teoli, FredB, Skoua
Dernière mise à jour par : SphinxKnight,