Webページをブラウザから印刷する際に、最適化するためのCSSのフレームワーク -Hartija
Post on:2015年5月27日
Webページをブラウザから印刷する際に、最適化するためのCSSのフレームワークを紹介します。
Hartija CSS Print Framework -GitHub
Hartijaではページ全体、見出しやテキスト、画像、リンク、テーブルを印刷用にスタイル定義し、印刷時には非表示にさせる要素を定義します。以前紹介した時に比べCSS3/HTML5対応でいろいろなスタイルが増えています。
Hartijaの使い方
Hartijaの「print.css」を外部ファイルとして加えるだけです。
「media="print"」の指定は忘れないように。
<link rel="stylesheet" href="print.css" type="text/css" media="print">
印刷用のスタイル:ページ全体
背景は無し、文字色はブラックに指定されています。
フォントの指定は英語がベースなので、日本語環境で利用する場合には「font-family」「font-size」を変更した方がいいと思います。
/* -------------------------------------------------------------- Hartija CSS Print Framework -MIT License * Version: 1.0 -------------------------------------------------------------- */ body { width:100% !important; margin:0 !important; padding:0 !important; line-height: 1.45; font-family: Garamond,"Times New Roman", serif; color: #000; background: none; font-size: 14pt; }
印刷用のスタイル:見出しとテキスト
印刷時に見出しはその直後で改ページにならないようにし、文章は最低でも3行は残るようにします。
/* Headings */ h1,h2,h3,h4,h5,h6 { page-break-after:avoid; } h1{font-size:19pt;} h2{font-size:17pt;} h3{font-size:15pt;} h4,h5,h6{font-size:14pt;} p, h2, h3 { orphans: 3; widows: 3; } code { font: 12pt Courier, monospace; } blockquote { margin: 1.2em; padding: 1em; font-size: 12pt; } hr { background-color: #ccc; }
印刷用のスタイル:画像
画像は余白を確保し、実寸で配置します。
/* Images */ img { float: left; margin: 1em 1.5em 1.5em 0; max-width: 100% !important; } a img { border: none; }
印刷用のスタイル:リンク
テキストリンクはURIを表示するようにし、リンク用の画像は非表示にします。
/* Links */ a:link, a:visited { background: transparent; font-weight: 700; text-decoration: underline;color:#333; } a:link[href^="http://"]:after, a[href^="http://"]:visited:after { content: " (" attr(href) ") "; font-size: 90%; } abbr[title]:after { content: " (" attr(title) ")"; } /* Don't show linked images */ a[href^="http://"] {color:#000; } a[href$=".jpg"]:after, a[href$=".jpeg"]:after, a[href$=".gif"]:after, a[href$=".png"]:after { content: " (" attr(href) ") "; display:none; } /* Don't show links that are fragment identifiers, or use the <code>javascript:</code> pseudo protocol .. taken from html5boilerplate */ a[href^="#"]:after, a[href^="javascript:"]:after {content: "";}
印刷用のスタイル:テーブル
テーブルは文字を左寄せにし、見出しを太字に、各セルの余白を十分に確保します。
/* Table */ table { margin: 1px; text-align:left; } th { border-bottom: 1px solid #333; font-weight: bold; } td { border-bottom: 1px solid #333; } th,td { padding: 4px 10px 4px 0; } tfoot { font-style: italic; } caption { background: #fff; margin-bottom:2em; text-align:left; } thead {display: table-header-group;} img,tr {page-break-inside: avoid;}
印刷用のスタイル:非表示
印刷時に非表示にしたい要素やコンポーネントを指定します。
/* Hide various parts from the site #header, #footer, #navigation, #rightSideBar, #leftSideBar {display:none;} */
sponsors