今日紹介するのは、極めて初歩的なテクニック。しかし、ご存じない方も多いかもしれません。
通常の CSS とは別に、印刷時にのみ有効となるスタイルシートを設定する方法です。
通常、何も意識せずに普通に記述した CSS は画面表示時と印刷時で同じように適用されます。しかし、メディアタイプを指定して記述することで、それらを別々に分割することが可能です。
このときに使用するキーワードが[@media print]で、この要素内に記述されたスタイルが、印刷時のみ有効になります。
例えば、以下のように記述すると…
#sidebar {float:left; width:200px;} #content {float:right; width:600px;} @media print { #sidebar {display:none} #content {float:none; width:100%;} }
この場合だと、通常スクリーンに表示されているときは[id=sidebar]で指定されたボックスが描画されますが、印刷時には[id=sidebar]が非表示になり、さらに[id=content]の横幅が 100% になります。
注意点として、一部の古いブラウザ(もちろん Internet Explorer なのですが…)では不具合により[@media type]内の記述が無視されたます。
どこまでも劣悪なブラウザなんです。IE は。
さて。
スタイルシートの内部に記述する方法の他に<head> 〜 </head>
内で外部 CSS を読み込む際に media を指定して対応することも可能です。
以下、通常の記述方法
<link rel="stylesheet" href="style.css">
こちらは印刷時にのみスタイルシートを適応させる方法。
<link rel="stylesheet" href="print.css" media="print">
簡単ですね。つまり[media="print"]をの指定を追加するだけで、[print.css]を印刷用のスタイルシートとして設定することができます。