印刷用CSSで気をつけること

印刷時の改ページ備忘録 - 総天然色頁の内容を踏まえてまとめ直し。

  • IE6 SP3未満だと、印刷プレビューを開いた際にクラッシュする。
    • IETesterのIE6でもこの症状が発生する。XP SP3を当てたIEでは発生しない。
  • IE6だと縮小印刷が出来ないので、css zoomを使用する。
    • body { zoom: xx% } とか。縮小率はIE7以降やFx等で確認。
  • position: absoluteを使った3段組みレイアウトだと、1ページに収まらなかった場合にレイアウトが酷いことになる。(IE7, 8とも)
    • 1ページ目で右・左が終わっていて、中央だけ2ページに跨っているような場合、2ページ目にも右と左が出たりする。
    • floatで。
  • 印刷時はdynamic properties(css expression)が使用できない。
  • overflow: hidden使ってる場所は注意。
    • Fxでは、直前で改ページが発生。
    • Fx以外でも、改ページ発生時に見きれたりする。
    • overflow: visibleで上書き
  • IEでiframeの直前で改ページが発生?
    • 他に原因があるかも?
    • iframe { display: block; } で対処自体は可能だった。
  • widthの計算が狂うと、入りきらない部分がまとめて次ページに回される。
    • IEだけ?
    • レイアウトが崩れたら、試しに親のwidthを広げてみる。
    • marginやpaddingを削ってみる。
    • 駄目もとでwidthを再定義したりすると直ったりすることも。
  • とにかく2ページ目以降がレイアウトがおかしくなる。
    • floatを使った3段組みで、1ページ目で左が終わっていて、中央が2ページ目もあるような場合、2ページ目の中央部分が左端に配置されたりする。(Fx3.5で確認)
    • メニューとかそういう部分はなるべく印刷しない方が良さそう。

結論

  • トップページをそのまま印刷したい、という風にお客さんに言われたら、可能な限り抵抗するか、可能な限り1ページに収める。
  • やはりThe Holy Grail Liquid Layoutあたりを考慮するべき?