かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

印刷用CSSのメモ

WEBページを印刷する需要ってもうそんなに無い気もするのだけれど、必要になったのでメモ。

印刷用のCSS

1. 印刷用のCSSをmedia="print"指定した別ファイルで読み込ませる
<link rel="stylesheet" type="text/css" href="main.css" media="screen">
<link rel="stylesheet" type="text/css" href="print.css" media="print">

印刷用のスタイルは print.css だけで完結する

2. メディアクエリ @media print で指定する

印刷用のメディアクエリを追加するCSSは印刷時にも有効になるようにmedia="all"で指定します

<link rel="stylesheet" type="text/css" href="main.css" media="all">

main.css 内に下記のメディアクエリを作成してその中に印刷用のCSSを記述する

@media print {
  /* 印刷用のCSS */
}

※ 印刷時もWEB表示用のCSSも有効になるので、不要なスタイルはこのメディアクエリ内で打ち消す必要がある。

用紙の設定 @pront

まだ対応していないブラウザもありますが、用紙サイズや空きなどの指定が行なえます。 f:id:kikiki-kiki:20171212230215p:plain
Can I use... Support tables for HTML5, CSS3, etc

例:
A4サイズ 上下12mm 左右7mm空き

@pront {
  size: A4
  margin: 12mm 7mm;
}

用紙サイズ指定 size: <width> < height > で指定

@page { size: 120mm 297mm; } /* A4サイズ */

A4 縦向き (A4が 210mm x 297mm なので portrait は省略可 )

@page { size: A4 portrait; }

A4 横向き

@page { size: A4 landscape; }

サイズに指定できるキーワード

keyword size
A5 148mm x 210mm
A4 210mm x 297mm
B5 176mm x 250mm
B4 250mm x 353mm
JIS-B5 182mm x 257mm
JIS-B4 257mm x 364mm
letter 8.5in x 11in
legal 8.5in x 14in
ledger 11in x 17in

[参考]