@page
Baseline
2024
*
Newly available
Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
* Some parts of this feature may have varying levels of support.
@page 㯠CSS ã®ã¢ããã«ã¼ã«ã§ãå°å·ããããã¼ã¸ã®ãã¾ãã¾ãªå´é¢ã夿´ããããã«ä½¿ç¨ããã¾ãããã¼ã¸ã®å¯¸æ³ãæ¹åãããã³ãã¼ã¸ã³ã対象ã¨ãã¦å¤æ´ãã¾ãã@page ã¢ããã«ã¼ã«ã¯ããã¾ãã¾ãªæ¬ä¼¼ã¯ã©ã¹ã使ç¨ãã¦ãå°å·ç©ã®ãã¹ã¦ã®ãã¼ã¸ã¾ãã¯ãã®ä¸é¨ã対象ã¨ãã¦ä½¿ç¨ãããã¨ãã§ãã¾ãã
æ§æ
/* ãã¹ã¦ã®ãã¼ã¸ã対象ã¨ãã */
@page {
size: 8.5in 9in;
margin-top: 4in;
}
/* ãã¹ã¦ã®å¶æ°ãã¼ã¸ã対象ã¨ãã */
@page :left {
margin-top: 4in;
}
/* ãã¹ã¦ã®å¥æ°ãã¼ã¸ã対象ã¨ãã */
@page :right {
size: 11in;
margin-top: 4in;
}
/* `page: wide;` ãè¨å®ããã¦ãããã¹ã¦ã®ã»ã¬ã¯ã¿ã¼ã対象ã¨ãã */
@page wide {
size: a4 landscape;
}
@page {
/* ãã¼ã¸çªå·ã示ãå³ä¸ãã¼ã¸ã³ããã¯ã¹ */
@top-right {
content: "ãã¼ã¸ " counter(pageNumber);
}
}
ãã¼ã¸ããããã£
@page ã¢ããã«ã¼ã«ã«ã¯ããã¼ã¸è¨è¿°åã¨ãã¼ã¸ã³ã®ã¢ããã«ã¼ã«ã®ã¿ãå«ãããã¨ãã§ãã¾ããæ¬¡ã®è¨è¿°åã¯ãå°ãªãã¨ã 1 ã¤ã®ãã©ã¦ã¶ã¼ã§å®è£
ããã¦ãã¾ãã
margin-
ãã¼ã¸ã®ãã¼ã¸ã³ãæå®ãã¾ããåã ã®ãã¼ã¸ã³ããããã£
margin-topãmargin-rightãmargin-bottomãmargin-leftã使ç¨ã§ãã¾ãã page-orientation-
ãã¼ã¸ã®æ¹åãæå®ãã¾ããããã¯ãã¼ã¸ã®ã¬ã¤ã¢ã¦ãã«ã¯å½±é¿ãã¾ãããå転ã¯ãåºååªä½ã§ã®ã¬ã¤ã¢ã¦ãå¾ã«é©ç¨ããã¾ãã
size-
対象ã¨ãªããã¼ã¸ããã¯ã¹ã®å å«ãããã¯ã®å¯¸æ³ã¨åããæå®ãã¾ããä¸è¬çãªå ´åã 1 ã¤ã®ãã¼ã¸ããã¯ã¹ã 1 æã®ç¨ç´ã«å°å·ããã対象ã¨ãªãç¨ç´ã®å¯¸æ³ã示ãã¾ãã
仿§ã§ã¯ã@page ã¢ããã«ã¼ã«ã«ãã£ã¦ãã¼ã¸ããã¯ã¹ã«é©ç¨ã§ãã CSS ããããã£ã¨ãã¦ã以ä¸ã®ããããã£ãæãããã¦ãã¾ãããããããããã¯ã©ã®ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ããã¾ã 対å¿ãã¦ãã¾ããã
æ®ãã®ãã¼ã¸ããããã£
| æ©è½ | CSS ãããã㣠|
|---|---|
| æ¹åãããã㣠| direction |
| èæ¯ãããã㣠| background-color |
| background-image | |
| background-repeat | |
| background-attachment | |
| background-position | |
| background | |
| å¢çç·ãããã㣠| border-top-width |
| border-right-width | |
| border-bottom-width | |
| border-left-width | |
| border-width | |
| border-top-color | |
| border-right-color | |
| border-bottom-color | |
| border-left-color | |
| border-color | |
| border-top-style | |
| border-right-style | |
| border-bottom-style | |
| border-left-style | |
| border-short-style | |
| border-top | |
| border-right | |
| border-bottom | |
| border-left | |
| border | |
| ã«ã¦ã³ã¿ã¼ãããã㣠| counter-reset |
| counter-increment | |
| è² | color |
| ãã©ã³ããããã㣠| font-family |
| font-size | |
| font-style | |
| font-variant | |
| font-weight | |
| font | |
| é«ãã®ãããã㣠| height |
| min-height | |
| max-height | |
| è¡ã®é«ã | line-height |
| ãã¼ã¸ã³ãããã㣠| margin-top |
| margin-right | |
| margin-bottom | |
| margin-left | |
| margin | |
| 輪éç·ãããã㣠| outline-width |
| outline-style | |
| outline-color | |
| outline | |
| ããã£ã³ã°ãããã㣠| padding-top |
| padding-right | |
| padding-bottom | |
| padding-left | |
| padding | |
| å¼ç¨ | quotes |
| ããã¹ããããã㣠| letter-spacing |
| text-align | |
| text-decoration | |
| text-indent | |
| text-transform | |
| white-space | |
| word-spacing | |
| å¯è¦æ§ | visibility |
| å¹ ã®ãããã㣠| width |
| min-width | |
| max-width |
解説
@page ã«ã¼ã«ã¯ããã¼ã¸ããã¯ã¹ã®ããããã£ãå®ç¾©ãã¾ãã @page ã¢ããã«ã¼ã«ã¯ãCSS ãªãã¸ã§ã¯ãã¢ãã«ã¤ã³ã¿ã¼ãã§ã¤ã¹ CSSPageRule çµç±ã§ã¢ã¯ã»ã¹ã§ãã¾ãã
ã¡ã¢:
W3C ã¯ããã¥ã¼ãã¼ãã«é¢ãã <length> ã®åä½ãvhãvwãvminãvmax ã®åãæ±ãæ¹ã«ã¤ãã¦è°è«ä¸ã§ããå·®ãå½ãã£ã¦ã¯ããããã @page ã¢ããã«ã¼ã«ã®ä¸ã§ä½¿ããªãã§ãã ããã
é¢é£ããããã£
@page ã¢ããã«ã¼ã«ã使ç¨ããã¨ãã¦ã¼ã¶ã¼ã¯ã«ã¼ã«ã«ååãå²ãå½ã¦ããã¨ãã§ãã¾ãããã®ååã¯ã page ããããã£ã使ç¨ãã¦å®£è¨ã§å¼ã³åºããã¾ãã
page-
ã»ã¬ã¯ã¿ã¼ãã¦ã¼ã¶ã¼å®ç¾©ã®ååä»ããã¼ã¸ã使ç¨ã§ããããã«ãã¾ãã
形弿æ³
@page =
@page <page-selector-list>? { <declaration-rule-list> }
<page-selector-list> =
<page-selector>#
<page-selector> =
[ <ident-token>? <pseudo-page>* ]!
<pseudo-page> =
: [ left | right | first | blank ]
ããã§ã <page-body> ã¯æ¬¡ã®ããã«ãªãã¾ãã
- page-properties
- page-margin properties
ã¾ãã <pseudo-page> ã¯ä¸è¨ã®æ¬ä¼¼ã¯ã©ã¹ã表ãã¾ãã
ãã¼ã¸ã³ã®ã¢ããã«ã¼ã«
ãã¼ã¸ã³ã®ã¢ããã«ã¼ã«ã¯ã@page ã¢ããã«ã¼ã«å
ã§ä½¿ç¨ããã¾ãããããã¯ãããããææ¸å
ã®ãã¾ãã¾ãªç« ã対象ã¨ããã¹ã¿ã¤ã«ãããã¯ã§è¨å®ãããããããã£å¤ã«åºã¥ãã¦ãåºåããããã¼ã¸ã®é åãã¹ã¿ã¤ã«è¨å®ãã¾ãã
@page {
@top-left {
/* ãã¼ã¸ãã¼ã¸ã³ãããã㣠*/
}
}
@top-left ã¯ãææ¸ã®å·¦ä¸ã対象ã¨ããè¨å®ããããã¼ã¸ãã¼ã¸ã³ããããã£ã«åºã¥ãã¦å¤æ´ãé©ç¨ãã¾ãã
ãã以å¤ã«ãããã¼ã¸ã³ã«é¢ããã¢ããã«ã¼ã«ã«ã¯æ¬¡ã®ãããªãã®ãããã¾ãã
@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
ãã¼ã¸ãã¼ã¸ã³ããããã£
ãã¼ã¸ãã¼ã¸ã³ããããã£ã¯ãåã ã®ãã¼ã¸ã³ã¢ããã«ã¼ã«ã§è¨å®ã§ããä¸é£ã® CSS ããããã£ã§ãããããã«ã¯ã次ã®ãã®ãå«ã¾ãã¾ãã
ãã¼ã¸ãã¼ã¸ã³ããããã£
| æ©è½ | CSS ãããã㣠|
|---|---|
| æ¹åãããã㣠| direction |
| èæ¯ãããã㣠| background-color |
| background-image | |
| background-repeat | |
| background-attachment | |
| background-position | |
| background | |
| å¢çç·ãããã㣠| border-top-width |
| border-right-width | |
| border-bottom-width | |
| border-left-width | |
| border-width | |
| border-top-color | |
| border-right-color | |
| border-bottom-color | |
| border-left-color | |
| border-color | |
| border-top-style | |
| border-right-style | |
| border-bottom-style | |
| border-left-style | |
| border-short-style | |
| border-top | |
| border-right | |
| border-bottom | |
| border-left | |
| border | |
| ã«ã¦ã³ã¿ã¼ãããã㣠| counter-reset |
| counter-increment | |
| ã³ã³ãã³ã | content |
| è² | color |
| ãã©ã³ããããã㣠| font-family |
| font-size | |
| font-style | |
| font-variant | |
| font-weight | |
| font | |
| é«ãã®ãããã㣠| height |
| min-height | |
| max-height | |
| è¡ã®é«ã | line-height |
| ãã¼ã¸ã³ãããã㣠| margin-top |
| margin-right | |
| margin-bottom | |
| margin-left | |
| margin | |
| 輪éç·ãããã㣠| outline-width |
| outline-style | |
| outline-color | |
| outline | |
| ããã£ã³ã°ãããã㣠| padding-top |
| padding-right | |
| padding-bottom | |
| padding-left | |
| padding | |
| å¼ç¨ | quotes |
| ããã¹ããããã㣠| letter-spacing |
| text-align | |
| text-decoration | |
| text-indent | |
| text-transform | |
| white-space | |
| word-spacing | |
| åç´æ¹åã®é ç½® | vertical-align |
| å¯è¦æ§ | visibility |
| å¹ ã®ãããã㣠| width |
| min-width | |
| max-width | |
| Z é | z-index |
ååä»ããã¼ã¸
ååä»ããã¼ã¸ã使ç¨ããã¨ãå°å·æã«å®£è¨çãªæ¹æ³ã§ãã¼ã¸ãã¨ã®ã¬ã¤ã¢ã¦ããæ¹ãã¼ã¸ã追å ãããã¨ãã§ãã¾ãã
ååä»ããã¼ã¸ã¯ã page ããããã£ã使ç¨ãã¦é©ç¨ãããã¨ãã§ãã¾ããããã«ãããã¦ã¼ã¶ã¼ã¯å°å·ã¬ã¤ã¢ã¦ãã§ä½¿ç¨ãããã¾ãã¾ãªãã¼ã¸æ§æã使ãããã¨ãã§ãã¾ãã
ãã®ä¾ã«ã¤ãã¦ã¯ã page ã®ä¾ã«ããã¾ãã
ä¾
>size ããããã£ã使ç¨ãã¦ãã¼ã¸ã®æ¹åã夿´ãã
ãã®ä¾ã§ã¯ã<section> ã landscape å½¢å¼ã§åã
ã®ãã¼ã¸ã«åå²ããåãã¼ã¸ã« 20% ã®ãã¼ã¸ã³ãæå®ãã¦å°å·ããæ¹æ³ã示ãã¾ãã
å°å·ãã¿ã³ãã¯ãªãã¯ããã¨ãHTML ã®åã»ã¯ã·ã§ã³ãåã
ã®ãã¼ã¸ã«åå²ãããå°å·ãã¤ã¢ãã°ã表示ããã¾ãã
<button>ãã¼ã¸ãå°å·</button>
<article>
<section>
<h2>è¦åºã 1</h2>
<p>æ®µè½ 1 ã§ãã</p>
</section>
<section>
<h2>è¦åºã 2</h2>
<p>æ®µè½ 2 ã§ãã</p>
</section>
<section>
<h2>è¦åºã 3</h2>
<p>æ®µè½ 3 ã§ãã</p>
</section>
</article>
const button = document.querySelector("button");
button.addEventListener("click", () => {
window.print();
});
@page {
size: landscape;
margin: 2cm;
}
section {
page-break-after: always;
break-after: page;
}
@media print {
button {
display: none;
}
}
@page ã®æ¬ä¼¼ã¯ã©ã¹ã®ä¾
æ§ã
㪠@page ã®æ¬ä¼¼ã¯ã©ã¹ã®ä¾ãåç
§ãã¦ãã ããã
仿§æ¸
| Specification |
|---|
| CSS Paged Media Module Level 3> # at-page-rule> |
| CSS Logical Properties and Values Module Level 1> # page> |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
pageããããã£@pagesizeè¨è¿°å- CSS ãã¼ã¸ã¡ãã£ã¢ã¢ã¸ã¥ã¼ã«
- [META] CSS Paged Media Module Level 3 ãã®ä»¶ (ãã¼ã¸ãã¼ã¹ã®ã«ã¦ã³ã¿ã¼ãªã©) ã«é¢ãã鲿ã®è¿½è·¡ã¯ã Bugzilla ã®ãã±ãã