[CSS] Print.css 印刷対応する時に、気をつけること

Print.cssの基本

Web Fontは使用できない(文字化け)

Windows IEで文字化けを起こしてしまいます。

引用:ウェブページの印刷やPDF変換時のWebフォントの適用については、各ブラウザ・ソフトウェアの仕様に依存します。
ブラウザに依っては文字化けするケースがございますが、印刷時にWebフォントではなくシステムフォントで出力することで、文字化けを回避することができるかと思います。
参考サイトurl : https://fontplus.jp/faq/3987

解決方法:OSに入っているシステムフォントで対応

font-family: 'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','MS Pゴシック',sans-serif!important;

※firefoxは崩れてしまいます。
バグが多いため非推奨が無難です。

Chromeでprint.cssを確認・デバッグする方法

参考サイトurl : https://confrage.jp/chrome%E3%81%A7media-print%E3%82%92%E7%A2%BA%E8%AA%8D%E3%83%BB%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/

記述方法など

CSSのメディアクエリを使う場合

@media print{
    /* 印刷時に適用させたいスタイルを定義する */
}

HTMLのlinkタグに指定する場合


A4サイズにする

/* A4縦用のベース設定 */
@page {
    size: A4 portrait; /* 横の場合はlandscape */
    margin: 0mm;
}

headerの上部固定の時

印刷するページ毎に反映されてしまうので、1ページ目だけに変更。
absoluteは、relativeの位置によって変わるので、必要な箇所にrelativeを入れてください。

position: fixed;
    ↓
position: absolute;

補足 : position : relativeについて
relativeは、絶対値の起点の位置になります。
absoluteは、relativeで指定した位置を基準にします。

参考サイトurl : http://www.htmq.com/style/position.shtml

印刷をする際にCSSで指定した背景色を表示(Chromeのみ)

body {
    -webkit-print-color-adjust: exact;
}

ページを分割したい場合

 

 

.print_pages {
    size: A4 landscape;
    page-break-before: always;
}

英語などの文字がコンテンツからはみ出す場合

word-break: break-all!important;

印刷プレビュー時 コンテンツの途中で次のページに行くとき

break-inside: avoid;

widthの書き方(必須ではない)

width : cal(100% - xxx);

100%から計算する方が崩れにくくなります。

css モバイルファーストで記述されている場合

モバイルファーストで記述する場合は、
スマホのcssが優先されてしまい。PCの印刷ができません。
上記の方法で記述していくと、print.cssは@mediaで指定した部分を読み込めません。

解決方法:@media print, screen andで記述する

@media print, screen and (min-width: 768px) {

}

メディアクエリに printを含ませる必要があります。

注意点

Chormeでは、他ブラウザとvwの高さが違う可能性があります。
sliderなどで、imgタグをposition:absoluteなどで、
親要素にpaddingにvwを指定して表示させる方法の時
クロームで高さが低くなる現象ありました。

ソースコード

現象

解決方法 : imgにtransformを無効化する

解決方法 : imgに下記を対応
position static
transform: none;

親要素に対して
padding-top 0;

SNSシェア

WP TECH WordPress技術専門 Tips

コーポレートサイトへ

WP TECH WordPress技術専門 Tips

採用サイトへ