Webページをブラウザから印刷する際に、最適化するためのCSSのフレームワーク -Hartija

Webページをブラウザから印刷する際に、最適化するためのCSSのフレームワークを紹介します。

印刷用のスタイルシート:Hartija

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

top of page

©2024 coliss