Firefoxでページの一部が印刷されない
忘却録。
現象
当ブログでは、Firefoxで印刷(印刷プレビュー)すると、2ページ目以降が印刷されない。1ページ目のみ印刷される。現象でした。
他のブログを確認してみたところ、コンテンツ部分を1ページに収まる範囲のみ印刷するものもありました。ヘッダー・フッター・コンテンツが別ページに印刷されるため、印刷ページ数は3ページでした。もちろんコンテンツ部分に2ページ以上の量があるページです。
※Firefox72(現在最新)で確認
※Chromeでは、2ページ目以降を含めて想定通りに印刷される
原因
display: flex;
が原因です。
<body>
にdisplay: flex;
が指定されていたため、flex
が指定されている要素が正常に印刷できず、問題現象が発生していました。flex
の指定方法次第で、「2ページ目以降が印刷されない」「ページの一部が印刷されない」などの複数の現象として発生するようです。
※bugzillaには、本件を扱った次の起票があります。
939897 - [meta] Support shifting / splitting flex items between continuations of a fragmented flex container (flexbox content truncated when printing)
解決?
Firefox86の印刷機能の機能拡張により問題が修正された可能性があります。まだ、Bugzillaは閉じていませんが、最低でも一部の問題は解決したものと考えられます。最新環境でいま一度、問題現象の確認をおすすめします。
解決策
「display: flex;
」を「display: block;
」等に置き換える。
flex
が問題のため、flex
の付いた要素を印刷時のみ他プロパティに変更して対応します。
@media print {
body {
display: block;
}
}
※float
プロパティと組み合わせることでほとんどのレイアウトを再現できるはずです。
印刷とflex関連の他のバグ
- 1720719 - Scaled Printing no longer works properly after version 90 update
- Firefox90で拡大縮小印刷が正しく機能しない。ドキュメント下部が切れる
- Firefox90.0.2で修正済み
- Firefox90で拡大縮小印刷が正しく機能しない。ドキュメント下部が切れる
- 534182 - Tall inline-block/inline-table/inline-grid/inline-flex are cropped in print / print-preview
- 背の高いinline要素の印刷が途中で途切れる
- 関連CSSコード
display: inline-block;
(orinline-table/inline-grid/inline-flex
)
- 1267816 - Incorrect printing of a two-page-high flexbox with "justify-content: space-between"
- 印刷時に2ページ目に配置されるべき要素が1ページ目に配置して印刷される
- 関連CSSコード
display: flex;
flex-direction: column;
justify-content: space-between;
- 1666797 - [fragmentation] Printing gets chopped off after first page when using vertical writing-mode 'flex-direction: column' flexbox
- 垂直書き込みモードのflexboxで2ページ目から印刷されない
- 関連CSSコード
display: flex;
flex-direction: column;
writing-mode: vertical-rl;
- 1695475 - If an element in a flexbox is pre-paginated with
page-break-inside: avoid;
, it may be printed overlapping with subsequent elements- flexboxから要素がはみ出す。後続の要素と重なる。
- 関連CSSコード
display: flex;
break-inside: avoid;
page-break-inside: avoid;
印刷関連の他のバグ
- 1720719 - Scaled Printing no longer works properly after version 90 update
- Firefox90で拡大縮小印刷が正しく機能しない。ドキュメント下部が切れる
- Firefox90.0.2で修正済み
- Firefox90で拡大縮小印刷が正しく機能しない。ドキュメント下部が切れる