IEで背景に指定した色や画像を印刷するためには、【ツール】→【インターネットオプション】→【詳細設定】の中のいっちばん下にある、【背景の色とイメージを印刷する】にチェックを入れる必要があります。
これでOK!と思ったら大間違い、Web製作者、とくにWeb標準準拠で制作している人にはバグという大きな落とし穴があったのです。
IEで背景を印刷する設定にしても、CSSで背景に指定している色や画像が印刷されない場合があるのです。
今やっている仕事で、IE7から印刷時に自動的に紙の幅に合わせて縮小してくれるという機能が実装されたため、ブラウザで見えている通りに印刷したいという要望が出てきたので対応しているのですが、このバグに見事にはまりました。
下記サイトで原因がやっとわかりました。
Internet Explorer (Windows) CSSバグリスト
IE6では「width」を明示的に指定しないと、さまざまな不具合が起こりますが、これもそのひとつ。
「background」に「repeat」以外の値を指定していて、「width」または「height」が明示的に指定されていないと背景が印刷されません。
IE6では「height」を指定しても、中身に応じて自動的に高さが伸びるという、これもある意味バグなんですが、そういう仕様だったので「height」を指定してもいいですが、IE7ではこれがなくなったので自動的に「width」で対応するということになりますね。
「repeat-x」も「repeat-y」も「no-repeat」もダメってことは、ぜんぜんダメってことじゃないですか。
まったく嫌んなっちゃいますね。
これからは背景を指定した要素のほとんどに、「width」を指定しないといけないってことですか。
ぐあぁぁぁぁ……、めんどくさい!













Comment
コースケ 2007.02.26 13:29
ありがとうございます!スゴイ助かりました。
親要素があったのでwidth="100%"にしてやったら、
うまく印刷できるようになりました。
複数ページに渡るコンテンツを印刷するときに、
最後のページにしか背景が印刷されないので、
ほとほと困ってたんですよね。