印刷用スタイルシート
印刷用スタイルシートにより出力の最適化を行うカスタマイズです。 左上の画像は通常のブラウザによる表示で、同じページを印刷すると左下のような出力になります(画像はブラウザの「印刷プレビュー」を選択したものです)。具体的には、印刷用のページはタイトルやサイドバー等の不要な項目を表示しないように最適化して、本文のみ印刷できるようにしています。 以下設定方法です。 | |
1.印刷用スタイルシート追加
管理メニューの「テンプレート」をクリックし、次のページの「インデックス・テンプレート」の右側にある「新しいインデックス・テンプレートを作る」をクリック。次のページで下記をそれぞれ設定します。
- テンプレートの名前:スタイルシート・印刷用(なんでもいいです)
- 出力ファイル名:print.css
- 再構築オプション:チェックを外す
- このテンプレートにリンクするファイル:(空白)
- テンプレートの中身:スタイルシート(styles-site.css)の中身を丸ごとコピー
2.印刷用スタイルシートの修正
1項でコピーしたスタイルシートから、印刷に不要なIDセレクタおよびクラスセレクタ(サイドバー等)のプロパティを
display:none;
に変更します。公開テンプレートを例に挙げると、左カラム全体の指定は通常のスタイルシートでは
#links-left-box {
float: left;
width : 185px ;
}
#links-left {
color: #ffffff;
padding-top : 15px;
padding-left : 15px;
padding-right : 15px;
}
となっていますが、#links-left-box の指定を display プロパティだけに置き換えて、
#links-left-box{
display:none;
}
とします。#links-left は #links-left-box の内側にある要素で、表示されなくなるため削除します。そのまま残していても問題ありません。注:以前のテンプレートには #links-left-box はありませんので、#links-left に display プロパティを与えてください。
これと同じ要領で印刷時の表示が不要なものについて display プロパティを与えます。
3.テンプレートに link 要素追加
各テンプレートに印刷用の link 要素を追加します。
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" media="screen,tv" />
<link rel="stylesheet" href="<$MTBlogURL$>print.css" type="text/css" media="print" />
上記リストのように、現在の link 要素(rel 属性が stylesheet となっているもの)に青色部分を追加し、印刷用スタイルシートの link 要素を1行追加します。
スタイルシート切り替えのカスタマイズを行っている場合の link 要素追加も同様で、既存の link 要素に media="screen,tv" を追加して新しい link 要素を追加します。
4.色要素を変更
白黒でプリントする場合、色で表示の見栄えを指定している部分は出力に反映されません。このような指定を行っている場合は併せてスタイルシートを変更すると良いでしょう。例えばこのサイトではカスタマイズ記事のリストで赤色と青色を使っていますので、それぞれ下線および二重下線に変更しています。
以上です。2項のスタイルシートの修正はブラウザの「印刷プレビュー」で確認しながら少しずつ修正されることをお勧めします。
- YouTube動画にキャプションをつけてテキストを回り込ませる方法
- 画像を下揃えにしてテキストを回り込ませる方法
- style要素にCSSの擬似要素は記述可能か?
- position:relativeを設定すると他の要素がずれる場合の対処
- CSSでタブ切り替えする方法
- :target擬似クラスのまとめ
- CSSでヘッダを固定したスクロールテーブルを作る方法
- レスポンシブウェブデザインで画像を縮小する方法
- disabledなボタンのhoverのスタイルを無効にする方法
- HTML要素を別の要素を基点にしてCSSで絶対配置する方法
- :not擬似クラスでCSS3のサポートをチェックする方法
- :checked擬似クラスでチェックボックスに連動して要素を表示させる方法
- ol要素の入れ子で親の番号を子に割り当てる方法
- チェックボックスやラジオボタンを大きくする方法
- CSSで中央に配置する方法
≫ 印刷用スタイルシート作りました from やむやむ
小粋空間 さん : 印刷用スタイルシート を真似して、やむやむでも 印刷用のスタ... [続きを読む]
≫ 隠居のBlog備忘録: MT4.1 で エントリー部分のみを印刷する from Atelier
友人から、ブログのヘッダー部分や右サイドメニューを外して、エントリー部分のみを... [続きを読む]
おはようございます。
スタイルシートに #links-left-box の項目がないのですが、
#links-left #links-right を ゴッソリ消しちゃえばいいのでしょうか?
なぁ??んとなくわかりました。消しちゃダメですね。
#links-left {
display:none;
}
にしないと・・・
まだすっきりスタイルともいえないんだけど、印刷用のスタイルシートができました。
だけど、公開テンプレートには やっぱり #links-left-box ってのは ないですよね?
いつも一度で質問がまとまらなくてすみません。
IEでは 通常のと 印刷用と じょうずに見た目をわけることができたんですけど
Firefoxで見ると 中央カラムが 横いっぱいに広がってしまっています。
どこをどう修正すればいいのかわからず困っています。
ホント何度もすみません。直りました。
ていうか、どうして直ったのかわからないんです。
Firefox って スタイルシートがちゃんと認識されるのに時間がかかる・・・?
な??んてことないですよねぇ?だけど、なにもしてないのに直ったんです。不思議・・・
>さえらさん
こんばんは。
ご利用&トラックバックありがとうございます。
推測ですが、Firefoxで直ったのはキャッシュに残っていたCSSが更新されたからではないでしょうか。
あと、公開テンプレートの旧バージョンのスタイルシートには #links-xx-box の指定がないので追記しておきました(IE6の後方互換モード対策で途中から追加したセレクタです)。
なにはともあれうまくできてよかったです。
display:none;をclassに指定することはできないのでしょうか?
どうも効かなくて・・・
>いちごさん
こんにちは。
ご質問の件ですが、class に指定するのであれば、(X)HTMLマークアップの該当の要素に class 属性を追加してはいかがでしょうか。
それではよろしくお願い致します。