@charset "UTF-8";

body, div, p, blockquote, pre,
dl, dt, dd, ul, ol, li,
h1, h2, h3, h4, h5, h6,
table, th, td,
embed, object {
	margin: 0px;
	padding: 0px;
	text-align: left;
}

table, th, td, img { border: 0px; }


/*1*/
* { zoom: 1; }
span, label { zoom: 1; }
ol { padding-left: 2em; }
li { vertical-align: top; }

/*2*/
/* html, body { height: 100%; } */

/*3*/
html:not([lang*=""]) { overflow-y: scroll; } /* Firefox */
html:not(:only-child:only-child) { overflow-y: scroll; } /* Safari 3.2+ */

/*4*/
body { text-align: center; }

/*5*/
object, embed { vertical-align: top; }

/*6*/
.clearfix:after { content: "."; display: block; clear: both; visibility: hidden; height: 0.1px; font-size: 0.1em; line-height: 0; }
.clearfix { min-height: 1px; }
* html .clearfix { display: inline-block; } /* IE5以前のみ */
/*\*/ * html .clearfix { height: 1%; } .clearfix { display: block; } /**/ /* Mac版IEから隠す */


/*
---------------------------------------------------------------------------
1.
始めの2行は、「IEでhasLayoutの値がtrueでないとユーザが文字サイズを変更した
際に要素が重なってしまったり、フロートした要素がはみ出てしまったりする」と
いうバグを回避しています。（zoomプロパティはIEの独自拡張でinvalidですが。）
なお、単純に「* {zoom: 1;}」だと問題が生じます（下記URL参照）。一方、ここで
採用している方法では、img要素やinput要素の後のプレーンテキストをspan要素ま
たはlabel要素でマークアップする必要があります。
参考： http://hpbuilder.net/weblog/2007/08/07123842.html

続くリスト関連の指定は、いずれもやはり、IEのhasLayout関連のバグ対処。

「hasLayoutがtrueなol要素で、リスト番号が消えてしまう」バグ。消えてしまった
番号を出すために左側にpaddingをとります。
参考： http://hpbuilder.net/weblog/2007/08/06203819.html

「li要素ないしその子孫要素におけるhasLayoutがtrueである場合、リストマーカが
下方にずれる」バグ。hasLayoutがtrueになってしまう状況は、例えばfloatを利用
した場合。li要素内でimg要素をfloat: leftする等。
参考： http://end-of-file.net/blog/2008-11.html


2.
Firefoxでswfなどを縦100%でレンダリングさせる場合、「height: 100%;」が必要。


3.
FireFoxでは、コンテンツが少ない場合に縦スクロールバーが消えてしまい、ページ
移動の際にセンタリングがずれることがあります。これを防ぐために、縦スクロー
ルバーを常に表示させておきます。
IEでは縦スクロールバーが二重に表示される場合があるため、FireFoxのみに有効な
セレクタで記述しています。（要検証：このCSSハックは正しく機能しているか？）
なお、Operaにも同様の問題がありますが、ここではあきらめています。どうしても
必要な場合は下記。
html:first-child body {
	min-height: 100%;
	padding-bottom: 1px;
}


4.
IE6のquirkモードで margin: auto; によるセンタリングができないバクの対策。
後続の子ブロック要素で text-align: center; を指定して左寄せに戻す必要あり。
ただし、そもそもquirksモードに入らなければよい。


5.
FireFoxでembed要素、Operaでobject要素の下に余白ができてしまう問題を回避。


6.
floatしたブロック要素の高さはその親要素の高さには反映されないため、親要素の
高さの方が小さい場合には、親要素に指定したborderやbackground-imageが、意図
に反して途切れてしまう（floatした子要素がはみ出してしまう）ことがあります。
（これはCSSの解釈としては正しいのでバグではない。）
親要素のクラスに上記で設定したclearfixを指定することで、この問題を解消しま
す。
---------------------------------------------------------------------------
*/



/* プリンター関連
---------------------------------------------------------------------------
*/

/* プリント時以外は表示しない要素。 */
.printOnly { display : none; }

/* プリンタ用指定 */
@media print {

	/* overflowにvisible以外を指定した要素も印刷されるように。 */
	* { overflow: visible; }

	/* プリントされず、レイアウトからも消える要素。 */
	.noPrint { display: none; }

	/* プリントされないものの、レイアウトには影響を与える要素（単なる非表示）。 */
	.noPrintContent { visibility: hidden; }

	/* プリント時以外は表示しない要素。＝プリント時のみ表示する要素。 */
	.printOnly, div.printOnly { display: block; }
	span.printOnly, label.printOnly { display: inline; }
	table.printOnly { display: table; }
	tr.printOnly { display: table-row; }
	td.printOnly { display: table-cell; }

}
